use of android.telephony.PhoneStateListener in project SimplifyReader by chentao0707.
the class PhoneCallReceiver method onReceive.
@Override
public void onReceive(Context context, Intent intent) {
if (null == intent) {
return;
}
String action = intent.getAction();
if (action.equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
EventBus.getDefault().post(new EventCenter(Constants.EVENT_STOP_PLAY_MUSIC));
} else {
final TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch(state) {
case TelephonyManager.CALL_STATE_OFFHOOK:
case TelephonyManager.CALL_STATE_RINGING:
EventBus.getDefault().post(new EventCenter(Constants.EVENT_STOP_PLAY_MUSIC));
break;
case TelephonyManager.CALL_STATE_IDLE:
EventBus.getDefault().post(new EventCenter(Constants.EVENT_START_PLAY_MUSIC));
break;
}
}
}, PhoneStateListener.LISTEN_CALL_STATE);
}
}
use of android.telephony.PhoneStateListener in project XPrivacy by M66B.
the class XTelephonyManager method before.
@Override
protected void before(XParam param) throws Throwable {
switch(mMethod) {
case disableLocationUpdates:
if (isRestricted(param, PrivacyManager.cLocation, "enableLocationUpdates"))
param.setResult(null);
break;
case Srv_disableLocationUpdates:
if (isRestricted(param, PrivacyManager.cLocation, "Srv_enableLocationUpdates"))
param.setResult(null);
break;
case Srv_disableLocationUpdatesForSubscriber:
if (isRestricted(param, PrivacyManager.cLocation, "Srv_enableLocationUpdatesForSubscriber"))
param.setResult(null);
break;
case enableLocationUpdates:
case Srv_enableLocationUpdates:
case Srv_enableLocationUpdatesForSubscriber:
if (isRestricted(param))
param.setResult(null);
break;
case getAllCellInfo:
case getCellLocation:
case getDeviceId:
case getGroupIdLevel1:
case getIsimDomain:
case getIsimImpi:
case getIsimImpu:
case getLine1AlphaTag:
case getLine1Number:
case getMsisdn:
case getNeighboringCellInfo:
case getNetworkCountryIso:
case getNetworkOperator:
case getNetworkOperatorName:
case getSimCountryIso:
case getSimOperator:
case getSimOperatorName:
case getSimSerialNumber:
case getSubscriberId:
case getVoiceMailAlphaTag:
case getVoiceMailNumber:
case Srv_getAllCellInfo:
case Srv_getCellLocation:
case Srv_getNeighboringCellInfo:
break;
case listen:
if (param.args.length > 1 && param.args[0] instanceof PhoneStateListener && param.args[1] instanceof Integer) {
PhoneStateListener listener = (PhoneStateListener) param.args[0];
int event = (Integer) param.args[1];
if (event == PhoneStateListener.LISTEN_NONE) {
// Remove
synchronized (mListener) {
XPhoneStateListener xListener = mListener.get(listener);
if (xListener != null) {
param.args[0] = xListener;
Util.log(this, Log.WARN, "Removed count=" + mListener.size() + " uid=" + Binder.getCallingUid());
}
}
} else if (isRestricted(param))
try {
// Replace
XPhoneStateListener xListener;
synchronized (mListener) {
xListener = mListener.get(listener);
if (xListener == null) {
xListener = new XPhoneStateListener(listener);
mListener.put(listener, xListener);
Util.log(this, Log.WARN, "Added count=" + mListener.size() + " uid=" + Binder.getCallingUid());
}
}
param.args[0] = xListener;
} catch (Throwable ignored) {
// Some implementations require a looper
// which is not according to the documentation
// and stock source code
}
}
break;
case Srv_listen:
if (isRestricted(param))
param.setResult(null);
break;
case Srv_getDeviceId:
case Srv_getGroupIdLevel1:
case Srv_getIccSerialNumber:
case Srv_getIsimDomain:
case Srv_getIsimImpi:
case Srv_getIsimImpu:
case Srv_getLine1AlphaTag:
case Srv_getLine1Number:
case Srv_getMsisdn:
case Srv_getSubscriberId:
case Srv_getCompleteVoiceMailNumber:
case Srv_getVoiceMailNumber:
case Srv_getVoiceMailAlphaTag:
case Srv_getImei:
case Srv_getIsimIst:
case Srv_getIsimPcscf:
case Srv_getCdmaMdn:
case Srv_getCdmaMin:
case Srv_getLine1AlphaTagForDisplay:
case Srv_getLine1NumberForDisplay:
break;
case Srv_getCompleteVoiceMailNumberForSubscriber5:
case Srv_getDeviceId5:
case Srv_getDeviceIdForPhone5:
case Srv_getDeviceIdForSubscriber5:
case Srv_getGroupIdLevel1ForSubscriber5:
case Srv_getIccSerialNumberForSubscriber5:
case Srv_getImeiForSubscriber5:
case Srv_getIsimDomain5:
case Srv_getIsimImpi5:
case Srv_getIsimImpu5:
case Srv_getIsimIst5:
case Srv_getIsimPcscf5:
case Srv_getLine1AlphaTagForSubscriber5:
case Srv_getLine1NumberForSubscriber5:
case Srv_getMsisdnForSubscriber5:
case Srv_getNaiForSubscriber5:
case Srv_getSubscriberIdForSubscriber5:
case Srv_getVoiceMailAlphaTagForSubscriber5:
case Srv_getVoiceMailNumberForSubscriber5:
break;
}
}
use of android.telephony.PhoneStateListener in project MusicDNA by harjot-oberai.
the class HomeActivity method onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
screen_width = display.getWidth();
screen_height = display.getHeight();
ratio = (float) screen_height / (float) 1920;
ratio2 = (float) screen_width / (float) 1080;
ratio = Math.min(ratio, ratio2);
setContentView(R.layout.activity_home);
headSetReceiver = new HeadSetReceiver();
IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
registerReceiver(headSetReceiver, filter);
PackageInfo pInfo;
try {
pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
versionName = pInfo.versionName;
versionCode = pInfo.versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
mEndButton = new Button(this);
mEndButton.setBackgroundColor(themeColor);
mEndButton.setTextColor(Color.WHITE);
tp = new TextPaint();
tp.setColor(themeColor);
tp.setTextSize(65 * ratio);
tp.setFakeBoldText(true);
recentsViewAll = (TextView) findViewById(R.id.recents_view_all);
recentsViewAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFragment("recent");
}
});
playlistsViewAll = (TextView) findViewById(R.id.playlists_view_all);
playlistsViewAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFragment("allPlaylists");
}
});
copyrightText = (TextView) findViewById(R.id.copyright_text);
copyrightText.setText("Music DNA v" + versionName);
if (SplashActivity.tf4 != null) {
try {
copyrightText.setTypeface(SplashActivity.tf4);
} catch (Exception e) {
e.printStackTrace();
}
}
imgLoader = new ImageLoader(this);
ctx = this;
initializeHeaderImages();
hasSoftNavbar = CommonUtils.hasNavBar(this);
statusBarHeightinDp = CommonUtils.getStatusBarHeight(this);
navBarHeightSizeinDp = hasSoftNavbar ? CommonUtils.getNavBarHeight(this) : 0;
serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className, IBinder service) {
// cast the IBinder and get MyService instance
MediaPlayerService.LocalBinder binder = (MediaPlayerService.LocalBinder) service;
myService = binder.getService();
bound = true;
// register
myService.setCallbacks(HomeActivity.this);
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
bound = false;
}
};
minuteList = new ArrayList<>();
for (int i = 1; i < 25; i++) {
minuteList.add(String.valueOf(i * 5));
}
sleepHandler = new Handler();
lps = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lps.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
lps.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
int margin = ((Number) (getResources().getDisplayMetrics().density * 12)).intValue();
lps.setMargins(margin, margin, margin, navBarHeightSizeinDp + ((Number) (getResources().getDisplayMetrics().density * 5)).intValue());
fragMan = getSupportFragmentManager();
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
collapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
if (SplashActivity.tf4 != null) {
collapsingToolbar.setCollapsedTitleTypeface(SplashActivity.tf4);
collapsingToolbar.setExpandedTitleTypeface(SplashActivity.tf4);
}
customLinearGradient = (CustomLinearGradient) findViewById(R.id.custom_linear_gradient);
customLinearGradient.setAlpha(170);
customLinearGradient.invalidate();
drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
navigationView = (NavigationView) findViewById(R.id.nav_view);
if (navigationView != null) {
navigationView.setNavigationItemSelectedListener(this);
}
navigationView.setCheckedItem(R.id.nav_home);
View header = navigationView.getHeaderView(0);
navImageView = (ImageView) header.findViewById(R.id.nav_image_view);
if (navImageView != null) {
navImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PlayerFragment pFrag = getPlayerFragment();
if (pFrag != null) {
if (pFrag.mMediaPlayer != null && pFrag.mMediaPlayer.isPlaying()) {
onBackPressed();
isPlayerVisible = true;
// hideTabs();
showPlayer();
}
}
}
});
}
connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
phoneStateListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
PlayerFragment pFrag = playerFragment;
if (playerFragment != null) {
if (state == TelephonyManager.CALL_STATE_RINGING) {
//Incoming call: Pause music
if (pFrag.mMediaPlayer != null && pFrag.mMediaPlayer.isPlaying()) {
wasMediaPlayerPlaying = true;
pFrag.togglePlayPause();
} else {
wasMediaPlayerPlaying = false;
}
} else if (state == TelephonyManager.CALL_STATE_IDLE) {
//Not in call: Play music
if (pFrag.mMediaPlayer != null && !pFrag.mMediaPlayer.isPlaying() && wasMediaPlayerPlaying) {
pFrag.togglePlayPause();
}
} else if (state == TelephonyManager.CALL_STATE_OFFHOOK) {
//A call is dialing, active or on hold
if (playerFragment.mMediaPlayer != null && pFrag.mMediaPlayer.isPlaying()) {
wasMediaPlayerPlaying = true;
pFrag.togglePlayPause();
} else {
wasMediaPlayerPlaying = false;
}
}
}
super.onCallStateChanged(state, incomingNumber);
}
};
TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
if (mgr != null) {
mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}
mPrefs = getPreferences(MODE_PRIVATE);
prefsEditor = mPrefs.edit();
gson = new Gson();
main = this;
localBanner = (RelativeLayout) findViewById(R.id.localBanner);
favBanner = (ImageView) findViewById(R.id.favBanner);
recentBanner = (ImageView) findViewById(R.id.recentBanner);
folderBanner = (ImageView) findViewById(R.id.folderBanner);
savedDNABanner = (ImageView) findViewById(R.id.savedDNABanner);
localBannerPlayAll = (ImageView) findViewById(R.id.local_banner_play_all);
localBanner.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFragment("local");
}
});
favBanner.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFragment("favourite");
}
});
recentBanner.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFragment("recent");
}
});
folderBanner.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFragment("allFolders");
}
});
savedDNABanner.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFragment("allSavedDNAs");
}
});
localBannerPlayAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
queue.getQueue().clear();
for (int i = 0; i < localTrackList.size(); i++) {
UnifiedTrack ut = new UnifiedTrack(true, localTrackList.get(i), null);
queue.getQueue().add(ut);
}
if (queue.getQueue().size() > 0) {
Random r = new Random();
int tmp = r.nextInt(queue.getQueue().size());
queueCurrentIndex = tmp;
LocalTrack track = localTrackList.get(tmp);
localSelectedTrack = track;
streamSelected = false;
localSelected = true;
queueCall = false;
isReloaded = false;
onLocalTrackSelected(-1);
}
}
});
bottomToolbar = (FrameLayout) findViewById(R.id.bottomMargin);
spHome = (Toolbar) findViewById(R.id.smallPlayer_home);
playerControllerHome = (ImageView) findViewById(R.id.player_control_sp_home);
spImgHome = (CircleImageView) findViewById(R.id.selected_track_image_sp_home);
spTitleHome = (TextView) findViewById(R.id.selected_track_title_sp_home);
playerControllerHome.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (queue != null && queue.getQueue().size() > 0) {
onQueueItemClicked(queueCurrentIndex);
bottomToolbar.setVisibility(View.INVISIBLE);
}
}
});
playerControllerHome.setImageResource(R.drawable.ic_play_arrow_white_48dp);
spHome.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (queue != null && queue.getQueue().size() > 0) {
onQueueItemClicked(queueCurrentIndex);
bottomToolbar.setVisibility(View.INVISIBLE);
}
}
});
localRecyclerContainer = (RelativeLayout) findViewById(R.id.localRecyclerContainer);
recentsRecyclerContainer = (RelativeLayout) findViewById(R.id.recentsRecyclerContainer);
streamRecyclerContainer = (RelativeLayout) findViewById(R.id.streamRecyclerContainer);
playlistRecyclerContainer = (RelativeLayout) findViewById(R.id.playlistRecyclerContainer);
if (SplashActivity.tf4 != null) {
try {
((TextView) findViewById(R.id.playListRecyclerLabel)).setTypeface(SplashActivity.tf4);
((TextView) findViewById(R.id.recentsRecyclerLabel)).setTypeface(SplashActivity.tf4);
} catch (Exception e) {
e.printStackTrace();
}
}
localNothingText = (TextView) findViewById(R.id.localNothingText);
streamNothingText = (TextView) findViewById(R.id.streamNothingText);
recentsNothingText = (TextView) findViewById(R.id.recentsNothingText);
playlistNothingText = (TextView) findViewById(R.id.playlistNothingText);
localViewAll = (TextView) findViewById(R.id.localViewAll);
localViewAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFragment("local");
}
});
streamViewAll = (TextView) findViewById(R.id.streamViewAll);
streamViewAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFragment("stream");
}
});
progress = new Dialog(ctx);
progress.setCancelable(false);
progress.requestWindowFeature(Window.FEATURE_NO_TITLE);
progress.setContentView(R.layout.custom_progress_dialog);
progress.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
progress.show();
showCase = new ShowcaseView.Builder(this).blockAllTouches().singleShot(0).setStyle(R.style.CustomShowcaseTheme).useDecorViewAsParent().replaceEndButton(mEndButton).setContentTitlePaint(tp).setTarget(new ViewTarget(R.id.recentsRecyclerLabel, this)).setContentTitle("Recents and Playlists").setContentText("Here all you recent songs and playlists will be listed." + "Long press the cards or playlists for more options \n" + "\n" + "(Press Next to continue / Press back to Hide)").build();
showCase.setButtonText("Next");
showCase.setButtonPosition(lps);
showCase.overrideButtonClick(new View.OnClickListener() {
int count1 = 0;
@Override
public void onClick(View v) {
count1++;
switch(count1) {
case 1:
showCase.setTarget(new ViewTarget(R.id.local_banner_alt_showcase, (Activity) ctx));
showCase.setContentTitle("Local Songs");
showCase.setContentText("See all songs available locally, classified on basis of Artist and Album");
showCase.setButtonPosition(lps);
showCase.setButtonText("Next");
break;
case 2:
showCase.setTarget(new ViewTarget(searchView.getId(), (Activity) ctx));
showCase.setContentTitle("Search");
showCase.setContentText("Search for songs from local library and SoundCloud™");
showCase.setButtonPosition(lps);
showCase.setButtonText("Done");
break;
case 3:
showCase.hide();
break;
}
}
});
new loadSavedData().execute();
}
use of android.telephony.PhoneStateListener in project android_frameworks_base by AOSPA.
the class ComprehensiveCountryDetector method addPhoneStateListener.
protected synchronized void addPhoneStateListener() {
if (mPhoneStateListener == null) {
mPhoneStateListener = new PhoneStateListener() {
@Override
public void onServiceStateChanged(ServiceState serviceState) {
mCountServiceStateChanges++;
mTotalCountServiceStateChanges++;
if (!isNetworkCountryCodeAvailable()) {
return;
}
if (DEBUG)
Slog.d(TAG, "onServiceStateChanged: " + serviceState.getState());
detectCountry(true, true);
}
};
mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SERVICE_STATE);
}
}
use of android.telephony.PhoneStateListener in project android_frameworks_base by ResurrectionRemix.
the class GlobalActions method setupAirplaneModeListeners.
/**
* Since there are two ways of handling airplane mode (with telephony, we depend on the internal
* device telephony state), and MSIM devices do not report phone state for missing SIMs, we
* need to dynamically setup listeners based on subscription changes.
*
* So if there is _any_ active SIM in the device, we can depend on the phone state,
* otherwise fall back to {@link Settings.Global#AIRPLANE_MODE_ON}.
*/
private void setupAirplaneModeListeners() {
TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
for (PhoneStateListener listener : mPhoneStateListeners) {
telephonyManager.listen(listener, PhoneStateListener.LISTEN_NONE);
}
mPhoneStateListeners.clear();
final List<SubscriptionInfo> subInfoList = SubscriptionManager.from(mContext).getActiveSubscriptionInfoList();
if (subInfoList != null) {
mHasTelephony = true;
mAirplaneModeBits = new BitSet(subInfoList.size());
for (int i = 0; i < subInfoList.size(); i++) {
final int finalI = i;
PhoneStateListener subListener = new PhoneStateListener(subInfoList.get(finalI).getSubscriptionId()) {
@Override
public void onServiceStateChanged(ServiceState serviceState) {
final boolean inAirplaneMode = serviceState.getState() == ServiceState.STATE_POWER_OFF;
mAirplaneModeBits.set(finalI, inAirplaneMode);
// we're in airplane mode if _any_ of the subscriptions say we are
mAirplaneState = mAirplaneModeBits.cardinality() > 0 ? ToggleAction.State.On : ToggleAction.State.Off;
mAirplaneModeOn.updateState(mAirplaneState);
if (mAdapter != null) {
mAdapter.notifyDataSetChanged();
}
}
};
mPhoneStateListeners.add(subListener);
telephonyManager.listen(subListener, PhoneStateListener.LISTEN_SERVICE_STATE);
}
} else {
mHasTelephony = false;
}
// Set the initial status of airplane mode toggle
mAirplaneState = getUpdatedAirplaneToggleState();
}
Aggregations