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

Commit 43229d70 authored by Winson Chung's avatar Winson Chung
Browse files

Adding IME tile.

- Adding checks for telephony before showing RSSI tile

Change-Id: I1dc4fb7a07d9693d8c6a96678ac9d4ff9abafe44
parent 79cf1a22
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -15,9 +15,12 @@
-->
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ime_textview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    android:drawableTop="@drawable/stat_sys_roaming_cdma_0"
    android:text="@string/quick_settings_ime_label"
    android:singleLine="true"
    android:textAppearance="@style/TextAppearance.QuickSettings.TileView"
    />
 No newline at end of file
+4 −0
Original line number Diff line number Diff line
@@ -360,6 +360,10 @@ public class PanelView extends FrameLayout {
        mBar = panelBar;
    }

    public void setImeWindowStatus(boolean visible) {
        // To be implemented by classes extending PanelView
    }

    public void setup(NetworkController network, BluetoothController bt, BatteryController batt,
            LocationController location) {
        // To be implemented by classes extending PanelView
+2 −1
Original line number Diff line number Diff line
@@ -1413,6 +1413,7 @@ public class PhoneStatusBar extends BaseStatusBar {
        mCommandQueue.setNavigationIconHints(
                altBack ? (mNavigationIconHints | StatusBarManager.NAVIGATION_HINT_BACK_ALT)
                        : (mNavigationIconHints & ~StatusBarManager.NAVIGATION_HINT_BACK_ALT));
        mSettingsPanel.setImeWindowStatus(vis > 0);
    }

    @Override
+54 −24
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.statusbar.phone;

import android.app.Dialog;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
@@ -32,8 +33,8 @@ import android.hardware.display.DisplayManager;
import android.hardware.display.WifiDisplay;
import android.hardware.display.WifiDisplayStatus;
import android.net.Uri;
import android.os.UserHandle;
import android.provider.ContactsContract;
import android.provider.Settings;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -103,6 +104,10 @@ class QuickSettings {
        mBar = bar;
    }

    public void setImeWindowStatus(boolean visible) {
        mModel.onImeWindowStatusChanged(visible);
    }

    void setup(NetworkController networkController, BluetoothController bluetoothController,
            BatteryController batteryController, LocationController locationController) {
        networkController.addNetworkSignalChangedCallback(mModel);
@@ -247,6 +252,7 @@ class QuickSettings {
        });
        parent.addView(wifiTile);

        if (mModel.deviceSupportsTelephony()) {
            // RSSI
            QuickSettingsTileView rssiTile = (QuickSettingsTileView)
                    inflater.inflate(R.layout.quick_settings_tile, parent, false);
@@ -270,6 +276,7 @@ class QuickSettings {
                }
            });
            parent.addView(rssiTile);
        }

        // Battery
        QuickSettingsTileView batteryTile = (QuickSettingsTileView)
@@ -386,6 +393,29 @@ class QuickSettings {
        });
        parent.addView(wifiDisplayTile);

        // IME
        QuickSettingsTileView imeTile = (QuickSettingsTileView)
                inflater.inflate(R.layout.quick_settings_tile, parent, false);
        imeTile.setContent(R.layout.quick_settings_tile_ime, inflater);
        imeTile.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    mBar.collapseAllPanels(true);
                    Intent intent = new Intent(Settings.ACTION_SHOW_INPUT_METHOD_PICKER);
                    PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, intent, 0);
                    pendingIntent.send();
                } catch (Exception e) {}
            }
        });
        mModel.addImeTile(imeTile, new QuickSettingsModel.RefreshCallback() {
            @Override
            public void refreshView(QuickSettingsTileView view, State state) {
                view.setVisibility(state.enabled ? View.VISIBLE : View.GONE);
            }
        });
        parent.addView(imeTile);

        /*
        QuickSettingsTileView mediaTile = (QuickSettingsTileView)
                inflater.inflate(R.layout.quick_settings_tile, parent, false);
+33 −11
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.hardware.display.WifiDisplayStatus;
@@ -126,6 +127,10 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
    private RefreshCallback mLocationCallback;
    private State mLocationState = new State();

    private QuickSettingsTileView mImeTile;
    private RefreshCallback mImeCallback;
    private State mImeState = new State();

    public QuickSettingsModel(Context context) {
        mContext = context;
        mHandler = new Handler();
@@ -234,9 +239,14 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
        mRSSICallback = cb;
        mRSSICallback.refreshView(mRSSITile, mRSSIState);
    }
    boolean deviceSupportsTelephony() {
        PackageManager pm = mContext.getPackageManager();
        return pm.hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
    }
    // NetworkSignalChanged callback
    @Override
    public void onMobileDataSignalChanged(boolean enabled, String description) {
        if (deviceSupportsTelephony()) {
            // TODO: If view is in awaiting state, disable
            Resources r = mContext.getResources();
            // TODO: Check if RSSI is enabled
@@ -249,6 +259,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
                    r.getString(R.string.quick_settings_rssi_emergency_only));
            mRSSICallback.refreshView(mRSSITile, mRSSIState);
        }
    }

    // Bluetooth
    void addBluetoothTile(QuickSettingsTileView view, RefreshCallback cb) {
@@ -320,4 +331,15 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,

    }

    // IME
    void addImeTile(QuickSettingsTileView view, RefreshCallback cb) {
        mImeTile = view;
        mImeCallback = cb;
        mImeCallback.refreshView(mImeTile, mImeState);
    }
    void onImeWindowStatusChanged(boolean visible) {
        mImeState.enabled = visible;
        mImeCallback.refreshView(mImeTile, mImeState);
    }

}
 No newline at end of file
Loading