Skip to content

Commit add3ad1

Browse files
committed
fix:修改一些bug
1 parent c10ceda commit add3ad1

44 files changed

Lines changed: 404 additions & 277 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ android {
77
applicationId "com.cyl.musiclake"
88
minSdkVersion 17
99
targetSdkVersion 27
10-
versionCode 8
11-
versionName "4.0.4"
10+
versionCode 9
11+
versionName "4.0.5"
1212
multiDexEnabled true
1313
android.compileOptions.sourceCompatibility 1.8
1414
android.compileOptions.targetCompatibility 1.8

app/src/main/java/com/cyl/musiclake/api/MusicApi.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,7 @@ public static Observable<NeteaseList> getTopList(int id) {
9696
* 加载图片
9797
*/
9898
public static Observable<DoubanMusic> getMusicAlbumInfo(String info) {
99-
return DoubanApiServiceImpl.getMusicInfo(info)
100-
.subscribeOn(Schedulers.io())
101-
.observeOn(AndroidSchedulers.mainThread());
99+
return DoubanApiServiceImpl.getMusicInfo(info);
102100
}
103101

104102
public static CollectionInfo getCollectInfo(Music music) {

app/src/main/java/com/cyl/musiclake/base/BaseActivity.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ public void onReceive(final Context context, final Intent intent) {
126126
switch (action) {
127127
case MusicPlayerService.META_CHANGED:
128128
RxBus.getInstance().post(new MetaChangedEvent());
129+
RxBus.getInstance().post(new HistoryChangedEvent());
129130
break;
130131
case MusicPlayerService.PLAY_QUEUE_CHANGE:
131132
RxBus.getInstance().post(new HistoryChangedEvent());

app/src/main/java/com/cyl/musiclake/base/BaseFragment.java

Lines changed: 2 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import android.app.Activity;
44
import android.os.Bundle;
55
import android.support.annotation.Nullable;
6-
import android.util.Log;
76
import android.view.LayoutInflater;
87
import android.view.View;
98
import android.view.ViewGroup;
@@ -40,25 +39,9 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
4039
public void onViewCreated(View view, Bundle savedInstanceState) {
4140
initViews();
4241
listener();
43-
if (isLazyLoad()) {
44-
isViewCreated = true;
45-
lazyLoad();
46-
} else {
47-
loadData();
48-
}
49-
42+
loadData();
5043
}
5144

52-
/**
53-
* 是否懒加载
54-
*
55-
* @return the boolean
56-
*/
57-
protected boolean isLazyLoad() {
58-
return true;
59-
}
60-
61-
6245
protected void listener() {
6346

6447
}
@@ -83,29 +66,8 @@ public void onDestroyView() {
8366

8467
public abstract void initViews();
8568

86-
@Override
87-
public void setUserVisibleHint(boolean isVisibleToUser) {
88-
super.setUserVisibleHint(isVisibleToUser);
89-
if (rootView == null) {
90-
return;
91-
}
92-
if (isVisibleToUser) {
93-
isFragmentVisible = true;
94-
lazyLoad();
95-
} else {
96-
isFragmentVisible = false;
97-
}
98-
}
69+
protected void loadData() {
9970

100-
private void lazyLoad() {
101-
//这里进行双重标记判断,是因为setUserVisibleHint会多次回调,并且会在onCreateView执行前回调,必须确保onCreateView加载完毕且页面可见,才加载数据
102-
if (isViewCreated && isFragmentVisible) {
103-
loadData();
104-
//数据加载完毕,恢复标记,防止重复加载
105-
isViewCreated = false;
106-
isFragmentVisible = false;
107-
Log.e(getClass().getName(), "isVisible :可见加载数据");
108-
}
10971
}
11072

11173
@Override
@@ -142,8 +104,5 @@ public void stopProgressDialog() {
142104
}
143105
}
144106

145-
protected void loadData() {
146-
147-
}
148107

149108
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.cyl.musiclake.base;
2+
3+
import android.os.Bundle;
4+
import android.support.annotation.Nullable;
5+
import android.support.annotation.UiThread;
6+
7+
import com.cyl.musiclake.utils.LogUtil;
8+
9+
/**
10+
* 作者:YongLong on 2016/8/8 16:58
11+
* 邮箱:643872807@qq.com
12+
* 版本:2.5
13+
*/
14+
public abstract class BaseLazyFragment extends BaseFragment {
15+
/**
16+
* 懒加载过
17+
*/
18+
private boolean isLazyLoaded;
19+
20+
private boolean isPrepared;
21+
22+
@Override
23+
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
24+
super.onActivityCreated(savedInstanceState);
25+
isPrepared = true;
26+
//只有Fragment onCreateView好了,
27+
//另外这里调用一次lazyLoad()
28+
lazyLoad();
29+
}
30+
31+
@Override
32+
public void setUserVisibleHint(boolean isVisibleToUser) {
33+
super.setUserVisibleHint(isVisibleToUser);
34+
LogUtil.d("TAG", getClass().getName() + " setUserVisibleHint() --> isVisibleToUser = " + isVisibleToUser);
35+
if (isVisibleToUser) {
36+
lazyLoad();
37+
}
38+
}
39+
40+
/**
41+
* 调用懒加载
42+
*/
43+
44+
private void lazyLoad() {
45+
// 用户可见Fragment && 没有加载过数据 && 视图已经准备完毕
46+
if (getUserVisibleHint() && isPrepared && !isLazyLoaded) {
47+
onLazyLoad();
48+
isLazyLoaded = true;
49+
}
50+
}
51+
52+
@UiThread
53+
public abstract void onLazyLoad();
54+
}

app/src/main/java/com/cyl/musiclake/common/Extras.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ public class Extras {
4343
public static final String TING_UID = "ting_uid";
4444

4545

46-
public static final String SONG_CATEGORY = "category";
46+
public static final String SONG_LOCAL = "music_local";
47+
public static final String SONG_DB = "music_db";
4748
public static final String IS_LOVE = "is_love";
4849
public static final String LOCAL_MUSIC = "local_music";
4950
public static final String PLAY_HISTORY = "history";

app/src/main/java/com/cyl/musiclake/data/source/AppRepository.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.cyl.musiclake.bean.Artist;
77
import com.cyl.musiclake.bean.FolderInfo;
88
import com.cyl.musiclake.bean.Music;
9+
import com.cyl.musiclake.common.Extras;
910

1011
import java.util.List;
1112

@@ -17,8 +18,12 @@
1718

1819
public class AppRepository {
1920

20-
public static Observable<List<Music>> getAllSongsRepository(Context mContext) {
21-
return SongLoader.getAllSongs(mContext);
21+
public static Observable<List<Music>> getAllSongsRepository(Context mContext, String type) {
22+
if (type.equals(Extras.SONG_LOCAL)){
23+
return SongLoader.getAllLocalSongs(mContext);
24+
}else {
25+
return SongLoader.getAllSongs(mContext);
26+
}
2227
}
2328

2429
public static Observable<Music> updateFavoriteSongRepository(Context mContext, Music music) {

app/src/main/java/com/cyl/musiclake/data/source/SongLoader.java

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,11 @@ public static Observable<List<Music>> getSongsForMedia(Context context, final Cu
6868
if (music != null) {
6969
if (coverUri != null) {
7070
music.setCoverUri(coverUri);
71+
updateMusic(dbDao, music);
7172
}
7273
} else {
7374
music = new Music(id, albumId, artistId, title, artist, album, duration, trackNumber, path);
75+
dbDao.insertSong(music);
7476
}
7577
results.add(music);
7678
} while (cursor.moveToNext());
@@ -95,33 +97,6 @@ public static Observable<List<Music>> getSongsForMedia(Context context, final Cu
9597
*/
9698
public static Observable<List<Music>> getSongsForDB(Context context, final Cursor cursor) {
9799
DBDaoImpl dbDao = new DBDaoImpl(context);
98-
if ((cursor != null) && (cursor.moveToFirst())) {
99-
do {
100-
long id = cursor.getLong(0);
101-
String title = cursor.getString(1);
102-
String artist = cursor.getString(2);
103-
String album = cursor.getString(3);
104-
int duration = cursor.getInt(4);
105-
int trackNumber = cursor.getInt(5);
106-
String artistId = cursor.getString(6);
107-
long albumId = cursor.getLong(7);
108-
String path = cursor.getString(8);
109-
String coverUri = CoverLoader.getCoverUri(context, albumId);
110-
Music music = dbDao.getMusicInfo(id + "");
111-
if (music != null) {
112-
if (coverUri != null) {
113-
music.setCoverUri(coverUri);
114-
updateMusic(dbDao, music);
115-
}
116-
} else {
117-
music = new Music(id, albumId, artistId, title, artist, album, duration, trackNumber, path);
118-
dbDao.insertSong(music);
119-
}
120-
} while (cursor.moveToNext());
121-
}
122-
if (cursor != null) {
123-
cursor.close();
124-
}
125100
String sql = "select * from " + DBData.MUSIC_TABLE + " where " + DBData.IS_ONLINE + "=0";
126101
Cursor mCursor = dbDao.makeCursor(sql);
127102
return getSongsForCursor(context, mCursor);
@@ -219,6 +194,10 @@ public static Observable<List<Music>> getAllSongs(Context context) {
219194
return getSongsForDB(context, makeSongCursor(context, null, null));
220195
}
221196

197+
public static Observable<List<Music>> getAllLocalSongs(Context context) {
198+
return getSongsForMedia(context, makeSongCursor(context, null, null));
199+
}
200+
222201
public static Observable<List<Music>> searchSongs(Context context, String searchString) {
223202
return getSongsForMedia(context, makeSongCursor(context, "title LIKE ? or artist LIKE ? or album LIKE ? ",
224203
new String[]{"%" + searchString + "%", "%" + searchString + "%", "%" + searchString + "%"}));

app/src/main/java/com/cyl/musiclake/data/source/download/TasksManager.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ public TasksManagerModel getById(final int id) {
124124
return model;
125125
}
126126
}
127-
128127
return null;
129128
}
130129

@@ -162,16 +161,14 @@ public TasksManagerModel addTask(final String name, final String url) {
162161
}
163162

164163
public void finishTask(int id) {
165-
TasksManagerModel model = getById(id);
166-
dbController.finishTask(model);
164+
dbController.finishTask( id);
167165
}
168166

169-
public TasksManagerModel addTask(final String mid, final String name, final String url, final String path) {
167+
public TasksManagerModel addTask(final int id, final String mid, final String name, final String url, final String path) {
170168
if (TextUtils.isEmpty(url) || TextUtils.isEmpty(path)) {
171169
return null;
172170
}
173171

174-
final int id = FileDownloadUtils.generateId(url, path);
175172
TasksManagerModel model = getById(id);
176173
if (model != null) {
177174
return model;
@@ -188,7 +185,6 @@ public String createPath(final String url) {
188185
if (TextUtils.isEmpty(url)) {
189186
return null;
190187
}
191-
192188
return FileDownloadUtils.getDefaultSaveFilePath(url);
193189
}
194190
}

app/src/main/java/com/cyl/musiclake/data/source/download/TasksManagerDBController.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package com.cyl.musiclake.data.source.download;
22

3+
import android.content.ContentValues;
34
import android.database.Cursor;
45
import android.database.sqlite.SQLiteDatabase;
56
import android.text.TextUtils;
67

78
import com.cyl.musiclake.MusicApp;
89
import com.cyl.musiclake.data.source.db.DBHelper;
10+
import com.cyl.musiclake.utils.LogUtil;
911
import com.liulishuo.filedownloader.util.FileDownloadUtils;
1012

1113
import java.util.ArrayList;
@@ -74,8 +76,10 @@ public TasksManagerModel addTask(final String mid, final String name, final Stri
7476
return succeed ? model : null;
7577
}
7678

77-
public void finishTask(TasksManagerModel model) {
78-
model.setFinish(true);
79-
db.rawQuery("update " + TABLE_NAME + " set " + TasksManagerModel.FINISH + "=1 where id=" + model.getId(), null);
79+
public void finishTask(int id) {
80+
ContentValues values = new ContentValues();
81+
values.put(TasksManagerModel.FINISH, 1);
82+
db.update(TABLE_NAME, values, "id =?", new String[]{id + ""});
83+
LogUtil.e("finishTask");
8084
}
8185
}

0 commit comments

Comments
 (0)