Commit 5707d20c by Lee Jaebin

新着更新時、ログアウトすることによりエラーが発生する問題対応

parent 96ea7e01
......@@ -171,6 +171,8 @@ public class ContentDownloader {
Logger.e(TAG, "execKickTask encountered an exception.", e);
} catch (NetworkDisconnectedException e) {
Logger.e(TAG, "execKickTask encountered an exception.", e);
} catch (NullPointerException e) {
Logger.e(TAG, "execKickTask encountered an exception.", e);
} finally {
isKickTask = false;
}
......@@ -178,7 +180,7 @@ public class ContentDownloader {
});
}
private void execKickTask() throws AcmsException, NetworkDisconnectedException {
private void execKickTask() throws AcmsException, NetworkDisconnectedException, NullPointerException {
autoPaused = false;
if (Logger.isDebugEnabled()) {
Logger.d(TAG, "downloaderMap %s", getDownloadMapForDebug());
......@@ -622,7 +624,7 @@ public class ContentDownloader {
* @throws AcmsException
* @throws NetworkDisconnectedException
*/
private void startDownload(ContentDto contentDto) throws AcmsException, NetworkDisconnectedException {
private void startDownload(ContentDto contentDto) throws AcmsException, NetworkDisconnectedException, NullPointerException {
contentDto.status = DownloadStatusType.Downloading.type();
contentDto.resourcePath = ABVEnvironment.getInstance().getContentResourcesDirectoryPath(contentDto.contentId, false);
contentDto.downloadStartDate = DateTimeUtil.getCurrentDate();
......@@ -691,7 +693,7 @@ public class ContentDownloader {
return downloadUrl;
}
private GetContentParameters getContentParameter(ContentDto contentDto) {
private GetContentParameters getContentParameter(ContentDto contentDto) throws NullPointerException {
GetContentParameters param;
param = new GetContentParameters(contentDto.contentId, cache.getMemberInfo().sid, ContentZipType.ContentDownload);
return param;
......
......@@ -499,7 +499,8 @@ public abstract class ABVAuthenticatedActivity extends ABVActivity implements Co
if (!contentRefresher.isRefreshing()) {
configureKeepScreen();
}
if (e != null) {
//新着更新時にログアウトすることで、SIDが取得できなく、例外が発生したときにはトースト非表示
if (e != null && ABVDataCache.getInstance().getMemberInfo() != null) {
handleError(e);
}
}
......
......@@ -120,39 +120,17 @@ public abstract class ABVUIActivity extends ABVAuthenticatedActivity {
}
//更新する場合中止させる。
protected boolean refreshStop() {
if (refreshFlag()) {
try {
contentRefresher.stopRefresh();
} catch (Exception e) {
Logger.w("stopRefresh failed at refreshStop.", e);
// 停止ができなかった場合はfalseを返す。
return false;
}
}
return true;
}
//更新の場合動作させないメッセージ
protected boolean refreshMessage() {
if (refreshFlag()) {
handleErrorMessageToast(ErrorCode.L113);
return true;
}else{
public boolean refreshStop() {
try {
contentRefresher.stopRefresh();
} catch (Exception e) {
Logger.w("stopRefresh failed at refreshStop.", e);
// 停止ができなかった場合はfalseを返す。
return false;
}
}
//更新中の場合true
protected boolean refreshFlag() {
// if (progressRefresh.getVisibility() == View.VISIBLE) {
// return true;
// }else{
// return false;
// }
return false;
return true;
}
@Override
......@@ -442,9 +420,11 @@ public abstract class ABVUIActivity extends ABVAuthenticatedActivity {
}
});
}
// 自動ダウンロード対象がある場合、新着更新が完了したあとに開始するように修正(jang)
ContentDownloader.getInstance().autoDownload();
//ログアウト時にも呼ばれるのでチェック
if (ABVDataCache.getInstance().getMemberInfo() != null) {
// 自動ダウンロード対象がある場合、新着更新が完了したあとに開始するように修正(jang)
ContentDownloader.getInstance().autoDownload();
}
}
/**
......
......@@ -83,4 +83,11 @@ public class ABookSettingActivity extends PreferenceActivity {
return (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL;
}
/**
* 新着更新の中止処理
*/
public void stopRefresher() {
ABVUIActivity activity = ActivityHandlingHelper.getInstance().getPreviousOfSettingActivity();
activity.refreshStop();
}
}
......@@ -177,6 +177,9 @@ public class ABookSettingFragment extends PreferenceFragment {
private void logout() {
try {
// 新着更新が実行されている場合停止
((ABookSettingActivity)getActivity()).stopRefresher();
// modify by Jang 2013.06.20
UserAuthenticateLogic user = AbstractLogic.getLogic(UserAuthenticateLogic.class);
// ログイン情報がある場合のみログアウト処理を行う
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment