Преглед на файлове

Merge branch 'developer' of https://gitlab.com/Arisono/SkWeiChat-Baidu into feature

# Conflicts:
#	WeiChat/version.properties
Arison преди 7 години
родител
ревизия
6d6344bcfa

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Fri May 25 18:38:18 CST 2018
-debugName=448
+#Tue Jun 05 15:16:42 CST 2018
+debugName=475
 versionName=630
 versionName=630
-debugCode=448
+debugCode=475
 versionCode=171
 versionCode=171

+ 1 - 0
app_modular/appme/build.gradle

@@ -27,4 +27,5 @@ dependencies {
     compile project(':appcontact')
     compile project(':appcontact')
 
 
     compile 'com.android.support.constraint:constraint-layout:1.0.2'
     compile 'com.android.support.constraint:constraint-layout:1.0.2'
+    compile project(path: ':appmusic')
 }
 }

+ 2 - 0
app_modular/appme/src/main/java/com/uas/appme/settings/activity/AboutActivity.java

@@ -15,6 +15,7 @@ import android.widget.TextView;
 
 
 import com.afollestad.materialdialogs.GravityEnum;
 import com.afollestad.materialdialogs.GravityEnum;
 import com.afollestad.materialdialogs.MaterialDialog;
 import com.afollestad.materialdialogs.MaterialDialog;
+import com.common.LogUtil;
 import com.common.system.SystemUtil;
 import com.common.system.SystemUtil;
 import com.core.base.SupportToolBarActivity;
 import com.core.base.SupportToolBarActivity;
 import com.core.utils.CommonUtil;
 import com.core.utils.CommonUtil;
@@ -37,6 +38,7 @@ public class AboutActivity extends SupportToolBarActivity implements View.OnClic
     @Override
     @Override
     protected void onCreate(Bundle savedInstanceState) {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         super.onCreate(savedInstanceState);
+        LogUtil.d("AboutActivity extends","onCreate()");
         setContentView(R.layout.activity_about);
         setContentView(R.layout.activity_about);
         setTitle(getString(R.string.set_about));
         setTitle(getString(R.string.set_about));
         TextView versionTv = (TextView) findViewById(R.id.version_tv);
         TextView versionTv = (TextView) findViewById(R.id.version_tv);

+ 1 - 0
app_modular/appmusic/build.gradle

@@ -21,4 +21,5 @@ android {
 dependencies {
 dependencies {
     compile fileTree(include: ['*.jar'], dir: 'libs')
     compile fileTree(include: ['*.jar'], dir: 'libs')
     compile project(':common')
     compile project(':common')
+    testCompile deps.junit
 }
 }

+ 7 - 1
app_modular/appmusic/src/main/AndroidManifest.xml

@@ -7,12 +7,18 @@
         android:supportsRtl="true">
         android:supportsRtl="true">
         <activity android:name="com.usoftchina.pay.MainMusicActivity"
         <activity android:name="com.usoftchina.pay.MainMusicActivity"
             android:theme="@style/AppTheme.NoActionBar"
             android:theme="@style/AppTheme.NoActionBar"
+            android:launchMode="singleInstance"
             android:label="智慧英唐">
             android:label="智慧英唐">
             <intent-filter>
             <intent-filter>
                 <action android:name="com.usoftchina.pay.MainMusicActivity" />
                 <action android:name="com.usoftchina.pay.MainMusicActivity" />
-
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
             </intent-filter>
+
+         
         </activity>
         </activity>
+        <service
+            android:name="com.usoftchina.music.MusicService"
+            android:enabled="true"
+            android:exported="true" />
     </application>
     </application>
 </manifest>
 </manifest>

+ 75 - 0
app_modular/appmusic/src/main/java/com/usoftchina/music/MusicService.java

@@ -0,0 +1,75 @@
+package com.usoftchina.music;
+
+
+import android.app.Service;
+import android.content.Intent;
+import android.media.MediaPlayer;
+import android.os.Binder;
+import android.os.IBinder;
+
+/**
+ * Created by Arison on 2018/6/4.
+ */
+
+public class MusicService extends Service {
+    public MediaPlayer mediaPlayer;
+    public boolean tag = false;
+    
+    private static final String TAG = "MusicService";
+
+    public MusicService() {
+    
+    }
+
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        try {
+            mediaPlayer =  MediaPlayer.create(this, R.raw.yingtang);
+            mediaPlayer.prepare();
+            mediaPlayer.setLooping(true);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return super.onStartCommand(intent, flags, startId);
+    }
+
+    //  通过 Binder 来保持 Activity 和 Service 的通信
+    public MyBinder binder = new MyBinder();
+    public class MyBinder extends Binder {
+        public  MusicService getService() {
+            return MusicService.this;
+        }
+    }
+
+    public void playOrPause() {
+        if (mediaPlayer.isPlaying()) {
+            mediaPlayer.pause();
+        } else {
+            mediaPlayer.start();
+        }
+    }
+
+    public void stop() {
+        if (mediaPlayer != null) {
+            mediaPlayer.stop();
+            try {
+                mediaPlayer.reset();
+                mediaPlayer.prepare();
+                mediaPlayer.seekTo(0);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public boolean onUnbind(Intent intent) {
+        return super.onUnbind(intent);
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return binder;
+    }
+}

+ 81 - 55
app_modular/appmusic/src/main/java/com/usoftchina/pay/MainMusicActivity.java

@@ -1,12 +1,17 @@
 package com.usoftchina.pay;
 package com.usoftchina.pay;
 
 
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.ServiceConnection;
 import android.media.MediaPlayer;
 import android.media.MediaPlayer;
 import android.media.MediaPlayer.OnCompletionListener;
 import android.media.MediaPlayer.OnCompletionListener;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Handler;
+import android.os.IBinder;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.Toolbar;
 import android.support.v7.widget.Toolbar;
 import android.util.Log;
 import android.util.Log;
+import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.View.OnClickListener;
@@ -22,6 +27,7 @@ import com.lg.lrcview_master.DefaultLrcParser;
 import com.lg.lrcview_master.LrcRow;
 import com.lg.lrcview_master.LrcRow;
 import com.lg.lrcview_master.LrcView.OnLrcClickListener;
 import com.lg.lrcview_master.LrcView.OnLrcClickListener;
 import com.lg.lrcview_master.LrcView.OnSeekToListener;
 import com.lg.lrcview_master.LrcView.OnSeekToListener;
+import com.usoftchina.music.MusicService;
 import com.usoftchina.music.R;
 import com.usoftchina.music.R;
 
 
 import java.io.BufferedReader;
 import java.io.BufferedReader;
@@ -32,10 +38,7 @@ import java.util.List;
 
 
 public class MainMusicActivity extends AppCompatActivity {
 public class MainMusicActivity extends AppCompatActivity {
 	private MediaPlayer mPlayer;
 	private MediaPlayer mPlayer;
-	/**    控制播放的SeekBar***/
-	
 	private SeekBar mPlayerSeekBar;
 	private SeekBar mPlayerSeekBar;
-	/**控制歌词字体大小的SeekBar***/
 	private SeekBar mLrcSeekBar;
 	private SeekBar mLrcSeekBar;
 	private Button mPlayBtn;
 	private Button mPlayBtn;
 	private com.lg.lrcview_master.LrcView mLrcView;
 	private com.lg.lrcview_master.LrcView mLrcView;
@@ -45,12 +48,53 @@ public class MainMusicActivity extends AppCompatActivity {
 	private Toast mPlayerToast;
 	private Toast mPlayerToast;
 	private Toast mLrcToast;
 	private Toast mLrcToast;
 	private Toolbar toolbar;
 	private Toolbar toolbar;
+	private MusicService musicService;
+    private static final String TAG = "MainMusicActivity";
+	//  在Activity中调用 bindService 保持与 Service 的通信
+	private void bindServiceConnection() {
+		LogUtil.d(TAG,"bindServiceConnection()");
+		Intent intent = new Intent(MainMusicActivity.this, MusicService.class);
+		startService(intent);
+		bindService(intent, serviceConnection, this.BIND_AUTO_CREATE);
+	}
+	
+	//  回调onServiceConnected 函数,通过IBinder 获取 Service对象,实现Activity与 Service的绑定
+	private ServiceConnection serviceConnection = new ServiceConnection() {
+		@Override
+		public void onServiceConnected(ComponentName name, IBinder service) {
+			LogUtil.d(TAG,"onServiceConnected()");
+			musicService = ((MusicService.MyBinder) (service)).getService();
+			LogUtil.d(TAG,"musicService"+musicService.mediaPlayer);
+			musicService.mediaPlayer.setOnCompletionListener(onCompletionListener);
+			if (!musicService.mediaPlayer.isPlaying()){
+				new Handler().postDelayed(new Runnable() {
+					@Override
+					public void run() {
+						float scalingFactor = com.lg.lrcview_master.LrcView.MIN_SCALING_FACTOR + 0*(com.lg.lrcview_master.LrcView.MAX_SCALING_FACTOR- com.lg.lrcview_master.LrcView.MIN_SCALING_FACTOR)/100;
+						LogUtil.d("MusicApp","scalingFactor:"+scalingFactor+"");
+						mLrcView.setLrcScalingFactor(scalingFactor);
+
+						musicService.playOrPause();
+						mLrcView.setLrcRows(getLrcRows());
+						handler.sendEmptyMessage(0);
+						mPlayBtn.setText("暂停");
+						mPlayBtn.setSelected(true);
+					}
+				},1000);
+			}
+			//musicTotal.setText(time.format(musicService.mediaPlayer.getDuration()));
+		}
+		@Override
+		public void onServiceDisconnected(ComponentName name) {
+			musicService = null;
+		}
+	};
+	
 	@Override
 	@Override
 	protected void onCreate(Bundle savedInstanceState) {
 	protected void onCreate(Bundle savedInstanceState) {
 		super.onCreate(savedInstanceState);
 		super.onCreate(savedInstanceState);
+		LogUtil.d(TAG,"OnCreate()");
 		setContentView(R.layout.activity_main_music);
 		setContentView(R.layout.activity_main_music);
-         
-		
 		initViews();
 		initViews();
 		initPlayer();
 		initPlayer();
 		toolbar=findViewById(R.id.commonToolBar);
 		toolbar=findViewById(R.id.commonToolBar);
@@ -58,15 +102,17 @@ public class MainMusicActivity extends AppCompatActivity {
 		setSupportActionBar(toolbar);
 		setSupportActionBar(toolbar);
 		getSupportActionBar().setDisplayShowTitleEnabled(false);
 		getSupportActionBar().setDisplayShowTitleEnabled(false);
 		StatusBarUtil.setPaddingSmart(this, toolbar);
 		StatusBarUtil.setPaddingSmart(this, toolbar);
-
 		toolbar.setNavigationIcon(R.drawable.back_black);
 		toolbar.setNavigationIcon(R.drawable.back_black);
 		toolbar.setNavigationOnClickListener(new OnClickListener() {
 		toolbar.setNavigationOnClickListener(new OnClickListener() {
 			@Override
 			@Override
 			public void onClick(View view) {
 			public void onClick(View view) {
-				onBackPressed();
+			   onBackPressed();
 			}
 			}
 		});
 		});
 	}
 	}
+
+	
+
 	private void initViews() {
 	private void initViews() {
 		mLrcView = (com.lg.lrcview_master.LrcView) findViewById(R.id.lrcView);
 		mLrcView = (com.lg.lrcview_master.LrcView) findViewById(R.id.lrcView);
 		mLrcView.setOnSeekToListener(onSeekToListener);
 		mLrcView.setOnSeekToListener(onSeekToListener);
@@ -78,20 +124,6 @@ public class MainMusicActivity extends AppCompatActivity {
 		mLrcSeekBar.setMax(100);
 		mLrcSeekBar.setMax(100);
 		//为seekbar设置当前的progress
 		//为seekbar设置当前的progress
 		mLrcSeekBar.setOnSeekBarChangeListener(onSeekBarChangeListener);
 		mLrcSeekBar.setOnSeekBarChangeListener(onSeekBarChangeListener);
-		new Handler().postDelayed(new Runnable() {
-			@Override
-			public void run() {
-				float scalingFactor = com.lg.lrcview_master.LrcView.MIN_SCALING_FACTOR + 0*(com.lg.lrcview_master.LrcView.MAX_SCALING_FACTOR- com.lg.lrcview_master.LrcView.MIN_SCALING_FACTOR)/100;
-				LogUtil.d("MusicApp","scalingFactor:"+scalingFactor+"");
-				mLrcView.setLrcScalingFactor(scalingFactor);
-
-				mPlayer.start();
-				mLrcView.setLrcRows(getLrcRows());
-				handler.sendEmptyMessage(0);
-				mPlayBtn.setText("暂停");
-				mPlayBtn.setSelected(true);
-			}
-		},1000);
 		mPlayBtn = (Button) findViewById(R.id.btnPlay);
 		mPlayBtn = (Button) findViewById(R.id.btnPlay);
 		mPlayerSeekBar.setOnSeekBarChangeListener(onSeekBarChangeListener);
 		mPlayerSeekBar.setOnSeekBarChangeListener(onSeekBarChangeListener);
 		mPlayBtn.setOnClickListener(onClickListener);
 		mPlayBtn.setOnClickListener(onClickListener);
@@ -99,26 +131,11 @@ public class MainMusicActivity extends AppCompatActivity {
 		
 		
 	}
 	}
 
 
-	@Override
-	protected void onResume() {
-		super.onResume();
-	    
-	}
-
 	
 	
-	
-	@Override
-	protected void onPause() {
-		super.onPause();
-		mPlayer.pause();
-		mPlayBtn.setText("播放");
-		mPlayBtn.setSelected(false);
-	}
-
 	private void initPlayer() {
 	private void initPlayer() {
-		mPlayer = MediaPlayer.create(this, R.raw.yingtang);
-		mPlayer.setOnCompletionListener(onCompletionListener);
-		
+//		mPlayer = MediaPlayer.create(this, R.raw.yingtang);
+//		mPlayer.setOnCompletionListener(onCompletionListener);
+		bindServiceConnection();
 	}
 	}
 	OnCompletionListener onCompletionListener = new OnCompletionListener() {
 	OnCompletionListener onCompletionListener = new OnCompletionListener() {
 		
 		
@@ -130,14 +147,14 @@ public class MainMusicActivity extends AppCompatActivity {
 			handler.removeMessages(0);
 			handler.removeMessages(0);
 			mPlayerSeekBar.setProgress(0);
 			mPlayerSeekBar.setProgress(0);
 
 
-			mPlayer.start();
+			musicService.mediaPlayer.start();
 			mLrcView.setLrcRows(getLrcRows());
 			mLrcView.setLrcRows(getLrcRows());
 			handler.sendEmptyMessage(0);
 			handler.sendEmptyMessage(0);
 			mPlayBtn.setText("暂停");
 			mPlayBtn.setText("暂停");
 			mPlayBtn.setSelected(true);
 			mPlayBtn.setSelected(true);
-			
 		}
 		}
 	};
 	};
+	
 	OnLrcClickListener onLrcClickListener = new OnLrcClickListener() {
 	OnLrcClickListener onLrcClickListener = new OnLrcClickListener() {
 
 
 		@Override
 		@Override
@@ -149,14 +166,14 @@ public class MainMusicActivity extends AppCompatActivity {
 
 
 		@Override
 		@Override
 		public void onSeekTo(int progress) {
 		public void onSeekTo(int progress) {
-			mPlayer.seekTo(progress);
+			musicService.mediaPlayer.seekTo(progress);
 			
 			
 		}
 		}
 	};
 	};
 	Handler handler = new Handler(){
 	Handler handler = new Handler(){
 		public void handleMessage(android.os.Message msg) {
 		public void handleMessage(android.os.Message msg) {
-			mPlayerSeekBar.setMax(mPlayer.getDuration());
-			mPlayerSeekBar.setProgress(mPlayer.getCurrentPosition());
+			mPlayerSeekBar.setMax(musicService.mediaPlayer.getDuration());
+			mPlayerSeekBar.setProgress(musicService.mediaPlayer.getCurrentPosition());
 			handler.sendEmptyMessageDelayed(0, 100);
 			handler.sendEmptyMessageDelayed(0, 100);
 		};
 		};
 	};
 	};
@@ -166,20 +183,19 @@ public class MainMusicActivity extends AppCompatActivity {
 		public void onClick(View v) {
 		public void onClick(View v) {
 			if(v == mPlayBtn){
 			if(v == mPlayBtn){
 				if("play".equals(mPlayBtn.getText())){
 				if("play".equals(mPlayBtn.getText())){
-					mPlayer.start();
+					musicService.playOrPause();
 					mLrcView.setLrcRows(getLrcRows());
 					mLrcView.setLrcRows(getLrcRows());
 					handler.sendEmptyMessage(0);
 					handler.sendEmptyMessage(0);
 					mPlayBtn.setText("暂停");
 					mPlayBtn.setText("暂停");
 					mPlayBtn.setSelected(true);
 					mPlayBtn.setSelected(true);
 				}else{
 				}else{
-
-					if(mPlayer.isPlaying()){
-						mPlayer.pause();
+					if(musicService.mediaPlayer.isPlaying()){
+						musicService.playOrPause();
 						mPlayBtn.setText("播放");
 						mPlayBtn.setText("播放");
 						mPlayBtn.setSelected(false);
 						mPlayBtn.setSelected(false);
 					}else{
 					}else{
 						mPlayBtn.setSelected(true);
 						mPlayBtn.setSelected(true);
-						mPlayer.start();
+						musicService.playOrPause();
 						mPlayBtn.setText("暂停");
 						mPlayBtn.setText("暂停");
 					}
 					}
 				}
 				}
@@ -192,7 +208,7 @@ public class MainMusicActivity extends AppCompatActivity {
 		@Override
 		@Override
 		public void onStopTrackingTouch(SeekBar seekBar) {
 		public void onStopTrackingTouch(SeekBar seekBar) {
 			if(seekBar == mPlayerSeekBar){
 			if(seekBar == mPlayerSeekBar){
-				mPlayer.seekTo(seekBar.getProgress());
+				musicService.mediaPlayer.seekTo(seekBar.getProgress());
 				handler.sendEmptyMessageDelayed(0, 100);
 				handler.sendEmptyMessageDelayed(0, 100);
 			}
 			}
 		}
 		}
@@ -212,7 +228,7 @@ public class MainMusicActivity extends AppCompatActivity {
 //				Log.d("timeStr",mLrcView.getmLrcRows().get(0).getTime()+"");
 //				Log.d("timeStr",mLrcView.getmLrcRows().get(0).getTime()+"");
 				Log.d("timeStrA",progress+"");
 				Log.d("timeStrA",progress+"");
 				tv_timeStart.setText(formatTimeFromProgress(progress));
 				tv_timeStart.setText(formatTimeFromProgress(progress));
-				tv_timeTotal.setText(formatTimeFromProgress(mPlayer.getDuration()));
+				tv_timeTotal.setText(formatTimeFromProgress(musicService.mediaPlayer.getDuration()));
 				if(fromUser){
 				if(fromUser){
 					
 					
 					showPlayerToast(formatTimeFromProgress(progress));
 					showPlayerToast(formatTimeFromProgress(progress));
@@ -284,14 +300,24 @@ public class MainMusicActivity extends AppCompatActivity {
 		mLrcToastTv.setText(text);
 		mLrcToastTv.setText(text);
 		mLrcToast.show();
 		mLrcToast.show();
 	}
 	}
+
 	
 	
-	@Override
+		@Override
 	protected void onDestroy() {
 	protected void onDestroy() {
 		super.onDestroy();
 		super.onDestroy();
 		handler.removeMessages(0);
 		handler.removeMessages(0);
-		mPlayer.stop();
-		mPlayer.release();
-		mPlayer = null;
+		musicService.mediaPlayer.stop();
+		musicService.mediaPlayer.release();
+		musicService.mediaPlayer = null;
 		mLrcView.reset();
 		mLrcView.reset();
 	}
 	}
+
+	@Override
+	public boolean onKeyDown(int keyCode, KeyEvent event) {
+		if (keyCode == KeyEvent.KEYCODE_BACK) {
+			moveTaskToBack(true);
+			return false;
+		}
+		return super.onKeyDown(keyCode, event);
+	}
 }
 }