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

Unverified Commit 82b9f95f authored by Steve Kondik's avatar Steve Kondik Committed by Michael Bestas
Browse files

systemui: Fix a few issues with Tuner

 * Allow launching PreferenceScreens directly by setting the
   "tuner" extra to a valid key.
 * Remove the silly warning. There are no dragons here.
 * Move CM stuff to CM manifest.
 * Fix the ActionBar title when navigating.

Change-Id: Ideac31dbfd71d7c0aa7fc3c20395c24128c598fc
parent b8ecc1ad
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
@@ -249,19 +249,6 @@
            </intent-filter>
        </activity-alias>

        <activity-alias android:name=".tuner.NavBarTuner"
                  android:targetActivity=".tuner.TunerActivity"
                  android:icon="@drawable/tuner"
                  android:theme="@style/TunerSettings"
                  android:label="@string/nav_bar"
                  android:process=":tuner"
                  android:exported="true">
            <intent-filter>
                <action android:name="com.android.settings.action.NAV_BAR_TUNER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity-alias>

        <!-- Service used by secondary users to register themselves with the system user. -->
        <service android:name=".recents.RecentsSystemUserService"
            android:exported="false"
+41 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
 * Copyright (c) 2016 The CyanogenMod Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.android.systemui">

    <uses-permission android:name="cyanogenmod.permission.WRITE_SECURE_SETTINGS" />

    <application>

        <activity-alias
            android:name=".tuner.NavBarTuner"
            android:targetActivity=".tuner.TunerActivity"
            android:icon="@drawable/tuner"
            android:theme="@style/TunerSettings"
            android:label="@string/nav_bar"
            android:process=":tuner"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.settings.action.NAV_BAR_TUNER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity-alias>

    </application>
</manifest>
+36 −14
Original line number Diff line number Diff line
@@ -32,19 +32,31 @@ public class TunerActivity extends SettingsDrawerActivity implements

    private static final String TAG_TUNER = "tuner";

    private String mInitialTitle;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (getFragmentManager().findFragmentByTag(TAG_TUNER) == null) {
            final String action = getIntent().getAction();
            boolean showDemoMode = action != null && action.equals(
                    "com.android.settings.action.DEMO_MODE");
            boolean showNavBar = action != null && action.equals(
                    "com.android.settings.action.NAV_BAR_TUNER");
            final Fragment fragment = showDemoMode ? new DemoModeFragment()
                    : showNavBar ? new NavBarTuner() : new TunerFragment();
            final Fragment fragment;
            if ("com.android.settings.action.DEMO_MODE".equals(action)) {
                fragment = new DemoModeFragment();
            } else if ("com.android.settings.action.NAV_BAR_TUNER".equals(action)) {
                fragment = new NavBarTuner();
            } else {
                fragment = new TunerFragment();
            }

            getFragmentManager().beginTransaction().replace(R.id.content_frame,
                    fragment, TAG_TUNER).commit();

            mInitialTitle = String.valueOf(getActionBar().getTitle());

            String extra = getIntent().getStringExtra(TAG_TUNER);
            if (extra != null) {
                startPreferenceScreen((PreferenceFragment)fragment, extra, false);
            }
        }
    }

@@ -52,6 +64,8 @@ public class TunerActivity extends SettingsDrawerActivity implements
    public void onBackPressed() {
        if (!getFragmentManager().popBackStackImmediate()) {
            super.onBackPressed();
        } else {
            getActionBar().setTitle(mInitialTitle);
        }
    }

@@ -61,7 +75,7 @@ public class TunerActivity extends SettingsDrawerActivity implements
            Class<?> cls = Class.forName(pref.getFragment());
            Fragment fragment = (Fragment) cls.newInstance();
            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            setTitle(pref.getTitle());
            getActionBar().setTitle(pref.getTitle());
            transaction.replace(R.id.content_frame, fragment);
            transaction.addToBackStack("PreferenceFragment");
            transaction.commit();
@@ -72,26 +86,34 @@ public class TunerActivity extends SettingsDrawerActivity implements
        }
    }

    @Override
    public boolean onPreferenceStartScreen(PreferenceFragment caller, PreferenceScreen pref) {
    private boolean startPreferenceScreen(PreferenceFragment caller, String key, boolean backStack) {
        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        SubSettingsFragment fragment = new SubSettingsFragment();
        final Bundle b = new Bundle(1);
        b.putString(PreferenceFragment.ARG_PREFERENCE_ROOT, pref.getKey());
        b.putString(PreferenceFragment.ARG_PREFERENCE_ROOT, key);
        fragment.setArguments(b);
        fragment.setTargetFragment(caller, 0);
        transaction.replace(R.id.content_frame, fragment);
        if (backStack) {
            transaction.addToBackStack("PreferenceFragment");
        }
        transaction.commit();

        return true;
    }

    @Override
    public boolean onPreferenceStartScreen(PreferenceFragment caller, PreferenceScreen pref) {
        return startPreferenceScreen(caller, pref.getKey(), true);
    }

    public static class SubSettingsFragment extends PreferenceFragment {
        @Override
        public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
            setPreferenceScreen((PreferenceScreen) ((PreferenceFragment) getTargetFragment())
                    .getPreferenceScreen().findPreference(rootKey));
            PreferenceScreen p = (PreferenceScreen) ((PreferenceFragment) getTargetFragment())
                    .getPreferenceScreen().findPreference(rootKey);
            setPreferenceScreen(p);
            getActivity().getActionBar().setTitle(p.getTitle());
        }
    }

}
+4 −0
Original line number Diff line number Diff line
@@ -66,12 +66,16 @@ public class TunerFragment extends PreferenceFragment {
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        addPreferencesFromResource(R.xml.tuner_prefs);

        /**
         * OHAI
        if (Settings.Secure.getInt(getContext().getContentResolver(), SETTING_SEEN_TUNER_WARNING,
                0) == 0) {
            if (getFragmentManager().findFragmentByTag(WARNING_TAG) == null) {
                new TunerWarningFragment().show(getFragmentManager(), WARNING_TAG);
            }
        }
         */

    }

    @Override