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

Commit 31217677 authored by Mohit Mali's avatar Mohit Mali Committed by Romain Hunault
Browse files

Use content provider to let Apps know when microG EN is uninstalled

parent e484df78
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -102,6 +102,8 @@
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />

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

    <application android:label="@string/settings_label"
            android:icon="@mipmap/ic_launcher"
            android:theme="@style/Theme.Settings"
+24 −4
Original line number Diff line number Diff line
@@ -62,6 +62,9 @@ import com.android.settingslib.core.lifecycle.Lifecycle;
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
@@ -392,10 +395,13 @@ public class AppInfoDashboardFragment extends DashboardFragment
        if (requestCode == REQUEST_UNINSTALL) {
            // 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"});
                    }

                }

            getActivity().invalidateOptionsMenu();
@@ -405,6 +411,20 @@ public class AppInfoDashboardFragment extends DashboardFragment
        }
    }

    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;
    }


    private void sendImplicitBroadcast(Context ctxt, Intent intent,String application) {
        try {
            PackageManager pm = ctxt.getPackageManager();