This repository has been archived by the owner on Dec 28, 2022. It is now read-only.
/
LteTile.java
97 lines (81 loc) · 2.92 KB
/
LteTile.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package com.android.systemui.quicksettings;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import com.android.internal.telephony.Phone;
import com.android.systemui.R;
import com.android.systemui.statusbar.phone.QuickSettingsContainerView;
import com.android.systemui.statusbar.phone.QuickSettingsController;
import java.util.List;
public class LteTile extends QuickSettingsTile {
private Context mContext;
public LteTile(Context context, QuickSettingsController qsc) {
super(context, qsc);
mContext = context;
mOnClick = new OnClickListener() {
@Override
public void onClick(View v) {
toggleLteState();
updateResources();
}
};
mOnLongClick = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
startSettingsActivity(Settings.ACTION_DATA_ROAMING_SETTINGS);
return true;
}
};
qsc.registerObservedContent(Settings.Global.getUriFor(Settings.Global.PREFERRED_NETWORK_MODE), this);
}
@Override
void onPostCreate() {
updateTile();
super.onPostCreate();
}
@Override
public void onChangeUri(ContentResolver resolver, Uri uri) {
updateResources();
}
@Override
public void updateResources() {
updateTile();
super.updateResources();
}
private synchronized void updateTile() {
int network = getCurrentPreferredNetworkMode(mContext);
switch(network) {
case Phone.NT_MODE_GLOBAL:
case Phone.NT_MODE_LTE_CDMA_AND_EVDO:
case Phone.NT_MODE_LTE_GSM_WCDMA:
case Phone.NT_MODE_LTE_CMDA_EVDO_GSM_WCDMA:
case Phone.NT_MODE_LTE_ONLY:
case Phone.NT_MODE_LTE_WCDMA:
case Phone.NT_MODE_TD_SCDMA_GSM_WCDMA_LTE:
case Phone.NT_MODE_TD_SCDMA_WCDMA_LTE:
mDrawable = R.drawable.ic_qs_lte_on;
mLabel = mContext.getString(R.string.quick_settings_lte);
break;
default:
mDrawable = R.drawable.ic_qs_lte_off;
mLabel = mContext.getString(R.string.quick_settings_lte_off);
break;
}
}
private void toggleLteState() {
TelephonyManager tm = (TelephonyManager)
mContext.getSystemService(Context.TELEPHONY_SERVICE);
tm.toggleLTE(true);
}
private static int getCurrentPreferredNetworkMode(Context context) {
int network = Settings.Global.getInt(context.getContentResolver(),
Settings.Global.PREFERRED_NETWORK_MODE, -1);
return network;
}
}