Back to project page DoomPlay.
The source code is released under:
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUC...
If you think the Android project DoomPlay listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.perm.DoomPlay; /*from ww w .ja v a 2 s.co m*/ /* * Copyright 2013 Vladislav Krot * * 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. * * You can contact me <DoomPlaye@gmail.com> */ import android.content.*; import android.content.res.Configuration; import android.os.Bundle; import android.os.IBinder; import android.preference.PreferenceManager; import android.support.v4.app.ActivityCompat; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.Toast; import com.api.KException; import java.util.ArrayList; import java.util.Locale; /* base class for all activities */ abstract class AbstractReceiver extends ActionBarActivity { protected BroadcastReceiver broadcastReceiver; protected IntentFilter intentFilter; private TextView textArtist; private TextView textTitle; protected boolean isRegister; BroadcastReceiver broadcastReceiverKiller; public static final String actionKill = "killAllActivities"; protected PlayingService playingService; protected ServiceConnection serviceConnection; protected Intent intentService; private boolean isBound; public void handleKException(KException e) { if(e.getMessage().contains("autorization failded")) { MainScreenActivity.isRegister = false; } showException(e); } public void showException(Exception e) { e.printStackTrace(); e.getMessage(); runOnUiThread(new RunnableParam<String>(e.getMessage()) { @Override public void run() { Toast.makeText(getBaseContext(),param, Toast.LENGTH_SHORT).show(); } }); } class RunnableParam<T> implements Runnable { T param; public RunnableParam(T param) { this.param = param; } @Override public void run() {} } void showPlaybackDialog(ArrayList<Audio> audios) { AddTrackFromPlaybackDialog dialog = new AddTrackFromPlaybackDialog(); Bundle bundle = new Bundle(); bundle.putParcelableArrayList(AddTrackFromPlaybackDialog.keyBundleDialog, audios); dialog.setArguments(bundle); dialog.show(getSupportFragmentManager(),"tag"); } @Override protected void onPause() { super.onPause(); if(isRegister) { isRegister = false; unregisterReceiver(broadcastReceiver); } unConnecServer(); } void onClickActionBar() { if(playingService != null && playingService.audios != null) { startActivity(FullPlaybackActivity.getReturnSmallIntent(this,playingService.audios)); } } private void initializeKiller() { IntentFilter intentFilterKiller = new IntentFilter(actionKill); broadcastReceiverKiller = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if(PlayingService.serviceAlive) { stopService(new Intent(getBaseContext(),PlayingService.class)); PlayingService.serviceAlive = false; } finish(); } }; registerReceiver(broadcastReceiverKiller, intentFilterKiller); } @Override protected void onDestroy() { unregisterReceiver(broadcastReceiverKiller); super.onDestroy(); } private void prepareLang() { String lang = PreferenceManager.getDefaultSharedPreferences(MyApplication.getInstance()).getString("languages", Locale.getDefault().getLanguage()); Locale locale = new Locale(lang); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, null); } protected void onServiceBound() {} @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); prepareLang(); prepareActionBar(); createBroadcastRec(); initializeKiller(); intentService = new Intent(this,PlayingService.class); serviceConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder binder) { playingService = ((PlayingService.MyBinder) binder).getService(); onServiceBound(); } @Override public void onServiceDisconnected(ComponentName name) {} }; } void prepareActionBar() { ActionBar bar = getSupportActionBar(); View view = getLayoutInflater().inflate(R.layout.action_bar_cust,null); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onClickActionBar(); } }); textArtist = (TextView)view.findViewById(R.id.textControlArtist); textTitle = (TextView)view.findViewById(R.id.textControlTitle); bar.setDisplayShowCustomEnabled(true); bar.setCustomView(view); bar.setDisplayShowTitleEnabled(false); bar.setDisplayHomeAsUpEnabled(true); } void updateActionBar() { if(playingService != null && PlayingService.serviceAlive && playingService.audios != null && playingService.audios.size() > 0) { textTitle.setText(playingService.audios.get(playingService.indexCurrentTrack).getTitle()); textArtist.setText(playingService.audios.get(playingService.indexCurrentTrack).getArtist()); textArtist.setVisibility(View.VISIBLE); textTitle.setTextColor(getResources().getColor(R.color.blue_text)); } else { textTitle.setText("DoomPlay"); textTitle.setTextColor(getResources().getColor(R.color.almost_white)); textArtist.setVisibility(View.GONE); } ActivityCompat.invalidateOptionsMenu(this); } protected void createBroadcastRec() { broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(action.equals(PlayingService.actionTrackChanged) ||(action.equals(PlayingService.actionIconPlay) || action.equals(PlayingService.actionIconPause))) { updateActionBar(); } } }; intentFilter = new IntentFilter(PlayingService.actionTrackChanged); intentFilter.addAction(PlayingService.actionIconPause); intentFilter.addAction(PlayingService.actionIconPlay); registerReceiver(broadcastReceiver, intentFilter); isRegister = true; } @Override protected void onResume() { super.onResume(); if(!isRegister) { isRegister = true; registerReceiver(broadcastReceiver,intentFilter); } updateActionBar(); connectService(); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case android.R.id.home: startActivity(new Intent(this, MainScreenActivity.class)); return true; case R.id.itemSettings: startActivity(new Intent(this,SettingActivity.class)); return true; case R.id.itemExit: sendBroadcast(new Intent(actionKill)); return true; } return super.onOptionsItemSelected(item); } protected void connectService() { bindService(intentService,serviceConnection,0); isBound = true; } protected void unConnecServer() { if(isBound) { unbindService(serviceConnection); isBound = false; } } }