Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 160eb497 authored by Romain Hunault's avatar Romain Hunault 💻
Browse files

Merge branch 'microg_provider_pie' into 'v1-pie'

microg content provider changes for pie

See merge request !72
parents 42ad808b 73ed87e8
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -95,6 +95,8 @@
    <uses-permission android:name="android.permission.USE_RESERVED_DISK" />
    <uses-permission android:name="android.permission.MANAGE_SCOPED_ACCESS_DIRECTORY_PERMISSIONS" />

    <uses-permission android:name="foundation.e.apps.micro.status.READ_WRITE" />

    <application android:label="@string/settings_label"
            android:icon="@mipmap/ic_launcher"
            android:taskAffinity=""
+22 −23
Original line number Diff line number Diff line
@@ -69,6 +69,10 @@ import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import android.database.Cursor;
import android.net.Uri;
import android.content.ContentValues;


/**
 * Dashboard fragment to display application information from Settings. This activity presents
@@ -383,10 +387,13 @@ public class AppInfoDashboardFragment extends DashboardFragment
                // Refresh option menu

                if (mAppEntry.info.packageName.equals("com.google.android.gms")){
                    Intent broadcastIntent = new Intent();
                    broadcastIntent.setAction("foundation.e.apps");
                    broadcastIntent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
                    sendImplicitBroadcast(getActivity(),broadcastIntent,"foundation.e.apps");
                    if (retrieveStatus(getActivity())!=null){
                        ContentValues values = new ContentValues();
                        values.put("installStatus","false");
                        getContentResolver().update(Uri.parse("content://foundation.e.apps.micro.status/cte"), values,  "id=?",
                                new String[]{"1"});
                    }

                }


@@ -414,29 +421,21 @@ public class AppInfoDashboardFragment extends DashboardFragment
        }
    }

    private void sendImplicitBroadcast(Context ctxt, Intent intent,String application) {
        try {
            PackageManager pm = ctxt.getPackageManager();
            List<ResolveInfo> matches = pm.queryBroadcastReceivers(intent, 0);

            for (ResolveInfo resolveInfo : matches) {
                Intent explicit = new Intent(intent);
                if (resolveInfo.activityInfo.packageName.equals(application)) {
                    ComponentName cn = new ComponentName(resolveInfo.activityInfo.applicationInfo.packageName,
                            resolveInfo.activityInfo.name);
                    explicit.setComponent(cn);
                    ctxt.sendBroadcast(explicit);
                    break;
                }


            }
        }catch (ActivityNotFoundException e){
            e.printStackTrace();
    public String retrieveStatus(Context context) {
        String status = null;
        Cursor c = context.getContentResolver().query(Uri.parse("content://foundation.e.apps.micro.status/cte"), null, "id=?", new String[]{"1"}, "installStatus");
        if (c.moveToFirst()) {
            do {
                status = c.getString(c.getColumnIndex("installStatus"));
                android.util.Log.e("TAG", "retrieveStatus: " + c.getString(c.getColumnIndex("installStatus")));
            } while (c.moveToNext());
        }
        c.close();
        return status;
    }



    @VisibleForTesting
    boolean shouldShowUninstallForAll(AppEntry appEntry) {
        boolean showIt = true;