v 1.1.3
+ Remove my download page.
+ Add 'Share' option in album page, you can share an album to others
+ Add 'Download' option in album page, you can download a whole album
+ Add Immersive mode support
+ Add option to only search my own photos
+ Add possible to search on someone photos
> Click on their buddy icon and select search.
*BUGS:*
- Fix some auto backup upload bug
- Fix some FC bug.
- Fix downloaded pictures not shown in gallery bug
- Fix some upload bug
v 1.1.3
+ 移除我的下載頁面
+ 相簿增加分享選項
+ 增加一次下載一個相簿的功能
+ 增加 4.4 Kitkat 全螢幕的功能
+ 搜尋頁面增加只搜尋自己的選項
+ 增加功能來搜尋某人的相片
> 點擊 buddy icon 並且選擇搜尋, 則可搜尋此人的相片
*BUGS:*
- 修正部份自動備份的問題
- 修正部份 FC 的問題
- 修正下載完的照片不會出現在 Gallery 的問題
- 修正部份上傳的問題
Google Play: FlickrBot v1.1.3
2014/04/29
2014/04/27
2014/04/24
小說閱讀器 v 2.0.9
v 2.0.9
+ 增加 '明智屋小說網' 支援
+ 增加 '大家讀書院' 支援
+ 調整下載管理員 UI
BUGS:
- 修正我的書櫃沒設定, 又按重置會導致 FC 的問題
- 修正杭州19樓部份載入問題
- 修正鮮網內文會有些怪異句子的問題
- 修正部份 FC 問題
Google Play: 小說閱讀器 v2.0.9
+ 增加 '明智屋小說網' 支援
+ 增加 '大家讀書院' 支援
+ 調整下載管理員 UI
BUGS:
- 修正我的書櫃沒設定, 又按重置會導致 FC 的問題
- 修正杭州19樓部份載入問題
- 修正鮮網內文會有些怪異句子的問題
- 修正部份 FC 問題
Google Play: 小說閱讀器 v2.0.9
2014/04/23
如何關閉 LG G2 F320K 的錄影開啟和停止的聲音 (Kitkat)
首先必須要有編譯反編譯的基礎.
由於基本上原廠 rom 都是 odex 的, 所以也必須要 deodex.
如何 deodex 和 odex , 可以參考以下文章.
如何 deodex stock rom 的 apk 檔案.
如何關閉相機聲音可以參考此篇
LG G2 韓版 - 如何開啟相機無聲的選項 for Kitkat
下面是如何把錄影啟動和停止聲音關閉 (這個關閉後除非在修改, 否則沒辦法透過選項再開啟喔)
com/lge/camera/controller/SoundController.smali
如上, 把有 soundPlay(I)V 的部份最前面加上 #, 這樣就不會有聲音了.
不過我個人是不太喜歡按下去完全沒有錄影開始的感覺就是了.
由於基本上原廠 rom 都是 odex 的, 所以也必須要 deodex.
如何 deodex 和 odex , 可以參考以下文章.
如何 deodex stock rom 的 apk 檔案.
如何關閉相機聲音可以參考此篇
LG G2 韓版 - 如何開啟相機無聲的選項 for Kitkat
下面是如何把錄影啟動和停止聲音關閉 (這個關閉後除非在修改, 否則沒辦法透過選項再開啟喔)
com/lge/camera/controller/SoundController.smali
.method public playRecordingSound(Z)V .locals 3 .parameter "start" .prologue .line 632 const-string v0, "CameraApp" new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v2, "playRecordingSound : start = " invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-static {v0, v1}, Lcom/lge/camera/util/CamLog;->d(Ljava/lang/String;Ljava/lang/String;)V .line 634 iget-object v0, p0, Lcom/lge/camera/controller/SoundController;->mGet:Lcom/lge/camera/ControllerFunction; invoke-interface {v0}, Lcom/lge/camera/ControllerFunction;->getApplicationMode()I move-result v0 if-nez v0, :cond_1 iget-object v0, p0, Lcom/lge/camera/controller/SoundController;->mGet:Lcom/lge/camera/ControllerFunction; const-string v1, "key_camera_shot_mode" invoke-interface {v0, v1}, Lcom/lge/camera/ControllerFunction;->getSettingValue(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "shotmode_panorama" invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_0 iget-object v0, p0, Lcom/lge/camera/controller/SoundController;->mGet:Lcom/lge/camera/ControllerFunction; const-string v1, "key_camera_shot_mode" invoke-interface {v0, v1}, Lcom/lge/camera/ControllerFunction;->getSettingValue(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "shotmode_plane_panorama" invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_0 iget-object v0, p0, Lcom/lge/camera/controller/SoundController;->mGet:Lcom/lge/camera/ControllerFunction; const-string v1, "key_camera_shot_mode" invoke-interface {v0, v1}, Lcom/lge/camera/ControllerFunction;->getSettingValue(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const-string v1, "shotmode_free_panorama" invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_1 :cond_0 invoke-static {}, Lcom/lge/camera/properties/ShutterSoundProperties;->isSupportShutterSoundOff()Z move-result v0 if-eqz v0, :cond_1 const-string v0, "off" iget-object v1, p0, Lcom/lge/camera/controller/SoundController;->mGet:Lcom/lge/camera/ControllerFunction; const-string v2, "key_camera_shutter_sound" invoke-interface {v1, v2}, Lcom/lge/camera/ControllerFunction;->getSettingValue(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_1 .line 649 :goto_0 return-void .line 644 :cond_1 if-eqz p1, :cond_2 .line 645 iget v0, p0, Lcom/lge/camera/controller/SoundController;->mSound_startRecording:I #invoke-virtual {p0, v0}, Lcom/lge/camera/controller/SoundController;->soundPlay(I)V goto :goto_0 .line 647 :cond_2 iget v0, p0, Lcom/lge/camera/controller/SoundController;->mSound_stopRecording:I #invoke-virtual {p0, v0}, Lcom/lge/camera/controller/SoundController;->soundPlay(I)V goto :goto_0 .end method
如上, 把有 soundPlay(I)V 的部份最前面加上 #, 這樣就不會有聲音了.
不過我個人是不太喜歡按下去完全沒有錄影開始的感覺就是了.
2014/04/16
怎麼使用 adb list 設備上所有的 apps
adb shell pm list packages -f
加上 -f 可以顯示相對應的檔案.
以下為部份輸出結果
package:/system/framework/framework-res.apk=android package:/system/app/Apollo.apk=com.andrew.apollo package:/system/app/BackupRestoreConfirmation.apk=com.android.backupconfirm package:/system/app/Bluetooth.apk=com.android.bluetooth package:/system/app/Browser.apk=com.android.browser package:/system/app/Calculator.apk=com.android.calculator2 package:/system/app/Calendar.apk=com.android.calendar package:/system/app/CarHomeLauncher.apk=com.android.cardock package:/system/app/CellBroadcastReceiver.apk=com.android.cellbroadcastreceiver package:/system/app/CertInstaller.apk=com.android.certinstaller package:/system/app/Contacts.apk=com.android.contacts package:/system/app/DefaultContainerService.apk=com.android.defcontainer
2014/04/15
2014/04/13
SwipeRefreshLayout example
原本是使用 https://github.com/chrisbanes/ActionBar-PullToRefresh 來實作往下拉時重新整理.
最近 Google 也推出此功能. 所以稍微玩一下看是否能很簡單的實作.
這邊要特別注意的 SwipeRefreshLayout 底下只能有一個 Layout, 且此 Layout 必須是 scrollable 的. 比如 Listview, Scrollview 或者本範例中的 webview.
由於本範例使用 webview 來測試, 所以 AndroidManifest.xml 裡記得把網路權限加上.
SwipeRefreshLayout 很簡單使用.
主要只要注意幾個就可以了. 從字面上應該都很清楚意思, 另外特別注意, 使用 SwipeRefreshLayout, 一定要 set OnRefreshListener, 否則當下拉時會出現 NULLPointerException.
完整的 class 如下
最近 Google 也推出此功能. 所以稍微玩一下看是否能很簡單的實作.
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/refreshlayout" android:layout_width="match_parent" android:layout_height="match_parent"> <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout>
這邊要特別注意的 SwipeRefreshLayout 底下只能有一個 Layout, 且此 Layout 必須是 scrollable 的. 比如 Listview, Scrollview 或者本範例中的 webview.
由於本範例使用 webview 來測試, 所以 AndroidManifest.xml 裡記得把網路權限加上.
<pre class='brush: xml'> <uses-permission android:name="android.permission.INTERNET" />
SwipeRefreshLayout 很簡單使用.
主要只要注意幾個就可以了. 從字面上應該都很清楚意思, 另外特別注意, 使用 SwipeRefreshLayout, 一定要 set OnRefreshListener, 否則當下拉時會出現 NULLPointerException.
- setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener)
- setRefreshing(boolean refreshing)
- setColorScheme(int colorRes1, int colorRes2, int colorRes3, int colorRes4)
- isRefreshing()
完整的 class 如下
Labels:
android,
example,
swiperefreshlayout
2014/04/10
小說閱讀器 v 2.0.7
v 2.0.7
+ 修改部份廣告載入方式
+ 支援 '杭州19樓' 登入
+ 支援重設'我的書櫃'
BUGS:
- 修正同步的問題
- 修正部份自動檢查更新的問題
- 修正部份搜尋問題
- 修正字體調整的問題
Google Play: 小說閱讀器 v2.0.7
+ 修改部份廣告載入方式
+ 支援 '杭州19樓' 登入
+ 支援重設'我的書櫃'
BUGS:
- 修正同步的問題
- 修正部份自動檢查更新的問題
- 修正部份搜尋問題
- 修正字體調整的問題
Google Play: 小說閱讀器 v2.0.7
2014/04/08
小說閱讀器 v 2.0.6
v 2.0.6
+ 調整字體大小範圍至 800
+ 增加 '鮮網' 支援
+ 移除跳至最上頁的連結
BUGS:
- 修正部份 FC 問題
- 修正匯出匯入問題
- 修正部份自動檢查小說更新的問題
Google Play: 小說閱讀器 v2.0.6
+ 調整字體大小範圍至 800
+ 增加 '鮮網' 支援
+ 移除跳至最上頁的連結
BUGS:
- 修正部份 FC 問題
- 修正匯出匯入問題
- 修正部份自動檢查小說更新的問題
Google Play: 小說閱讀器 v2.0.6
2014/04/07
FlickrBot v1.1.1
v 1.1.1
+ Add share functions, only links
+ Add photos/sets per page setting.
+ Add 'Add to set/Photoset cover/Remove from set' function.
+ Add 'while charging' setting for auto back up
+ Add 'search photos' feature
+ Add 'Vietnamese' translation
+ Add 'Traditional Chinese' translation
*BUGS:*
- Fix some instant upload bug
- Fix some favorite bug
v 1.1.1
+ 新增分享功能 (只限於連結)
+ 新增每頁相片/相片集載入數目設定
+ 新增加入相片集/從相片集移除的功能
+ 新增 '只限充電時備份' 的功能
+ 新增 '相片搜尋' 功能
+ 新增越南翻譯
*BUGS:*
- 修正部份自動備份的問題
- 修正部份加入最在的問題
Google Play: FlickrBot v1.1.1
+ Add share functions, only links
+ Add photos/sets per page setting.
+ Add 'Add to set/Photoset cover/Remove from set' function.
+ Add 'while charging' setting for auto back up
+ Add 'search photos' feature
+ Add 'Vietnamese' translation
+ Add 'Traditional Chinese' translation
*BUGS:*
- Fix some instant upload bug
- Fix some favorite bug
v 1.1.1
+ 新增分享功能 (只限於連結)
+ 新增每頁相片/相片集載入數目設定
+ 新增加入相片集/從相片集移除的功能
+ 新增 '只限充電時備份' 的功能
+ 新增 '相片搜尋' 功能
+ 新增越南翻譯
*BUGS:*
- 修正部份自動備份的問題
- 修正部份加入最在的問題
Google Play: FlickrBot v1.1.1
2014/04/02
小說閱讀器 v 2.0.5
v 2.0.5
+ 調整字體大小設定範圍
+ 移除久久中文網支援
+ 增加 '青檸言情網' 支援
+ 增加 '六九中文網' 支援
+ 修改單一網站搜尋廣告載入方式
+ 自動檢查更新新增選項 '開啟程式時檢查更新'
+ 新增訂閱更新的項目, 在我的最愛點擊右邊三個點
> 預設會訂閱更新, 要取消請自行取消
+ 我的網站列表新增全網站搜尋功能
BUGS:
- 修正部份字體設定問題
- 修正部份 FC 問題
Google Play: 小說閱讀器 v2.0.5
+ 調整字體大小設定範圍
+ 移除久久中文網支援
+ 增加 '青檸言情網' 支援
+ 增加 '六九中文網' 支援
+ 修改單一網站搜尋廣告載入方式
+ 自動檢查更新新增選項 '開啟程式時檢查更新'
+ 新增訂閱更新的項目, 在我的最愛點擊右邊三個點
> 預設會訂閱更新, 要取消請自行取消
+ 我的網站列表新增全網站搜尋功能
BUGS:
- 修正部份字體設定問題
- 修正部份 FC 問題
Google Play: 小說閱讀器 v2.0.5
訂閱:
文章 (Atom)