From 4340ddc057ab0f703b280ed52f5b04074c80bd64 Mon Sep 17 00:00:00 2001 From: qiujuer Date: Tue, 17 May 2016 17:26:59 +0800 Subject: [PATCH 01/27] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8A=A8=E5=BC=B9?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E5=9B=BE=E7=89=87=E8=BF=87=E4=BA=8E=E6=A8=A1?= =?UTF-8?q?=E7=B3=8A=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/fragment/TweetPubFragment.java | 160 +++++++++--------- .../java/net/oschina/app/util/ImageUtils.java | 155 +++++++++-------- 2 files changed, 160 insertions(+), 155 deletions(-) diff --git a/app/src/main/java/net/oschina/app/fragment/TweetPubFragment.java b/app/src/main/java/net/oschina/app/fragment/TweetPubFragment.java index 54a2d751c..105f75d2b 100644 --- a/app/src/main/java/net/oschina/app/fragment/TweetPubFragment.java +++ b/app/src/main/java/net/oschina/app/fragment/TweetPubFragment.java @@ -157,11 +157,11 @@ public class TweetPubFragment extends BaseFragment implements @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { - case R.id.public_menu_send: - handleSubmit(); - break; - default: - break; + case R.id.public_menu_send: + handleSubmit(); + break; + default: + break; } return true; } @@ -218,7 +218,7 @@ public class TweetPubFragment extends BaseFragment implements @Override public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_tweet_pub, container, false); @@ -240,7 +240,7 @@ public class TweetPubFragment extends BaseFragment implements /** * 处理从第三方分享跳转来的图片 - * + * * @param filePath */ private void handleImageFile(final String filePath) { @@ -252,7 +252,7 @@ public class TweetPubFragment extends BaseFragment implements msg.what = 1; try { msg.obj = BitmapCreate.bitmapFromStream( - new FileInputStream(filePath), 300, 300); + new FileInputStream(filePath), 520, 520); } catch (FileNotFoundException e) { e.printStackTrace(); } @@ -268,7 +268,7 @@ public class TweetPubFragment extends BaseFragment implements /** * 处理从图片浏览跳转来的图片 - * + * * @param url */ private void handleImageUrl(final String url) { @@ -279,7 +279,7 @@ public class TweetPubFragment extends BaseFragment implements msg.obj = BitmapFactory.decodeByteArray(cache, 0, cache.length); if (msg.obj == null) { DiskImageRequest req = new DiskImageRequest(); - req.load(url, 300, 300, new BitmapCallBack() { + req.load(url, 520, 520, new BitmapCallBack() { @Override public void onSuccess(Bitmap bitmap) { super.onSuccess(bitmap); @@ -317,7 +317,7 @@ public class TweetPubFragment extends BaseFragment implements mEtInput.addTextChangedListener(new SimpleTextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, - int count) { + int count) { mTvClear.setText((MAX_TEXT_LENGTH - s.length()) + ""); updateMenuState(); } @@ -329,7 +329,7 @@ public class TweetPubFragment extends BaseFragment implements mEtInput.addTextChangedListener(new SimpleTextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, - int count) { + int count) { mTvClear.setText((MAX_TEXT_LENGTH - s.length()) + ""); } }); @@ -411,16 +411,16 @@ public class TweetPubFragment extends BaseFragment implements @Override public void onActivityResult(final int requestCode, final int resultCode, - final Intent imageReturnIntent) { + final Intent imageReturnIntent) { if (resultCode != Activity.RESULT_OK) return; - if(requestCode == SELECT_FRIENDS_REEQUEST_CODE) { + if (requestCode == SELECT_FRIENDS_REEQUEST_CODE) { //选中好友的名字 String names[] = imageReturnIntent.getStringArrayExtra("names"); - if(names != null && names.length > 0) { + if (names != null && names.length > 0) { //拼成字符串 String text = ""; - for(String n : names) { + for (String n : names) { text += "@" + n + " "; } //插入到文本中 @@ -495,7 +495,7 @@ public class TweetPubFragment extends BaseFragment implements try { // 压缩上传的图片 ImageUtils.createImageThumbnail(getActivity(), - theLarge, theThumbnail, 800, 80); + theLarge, theThumbnail, 860, 100); imgFile = new File(theThumbnail); } catch (IOException e) { e.printStackTrace(); @@ -511,7 +511,9 @@ public class TweetPubFragment extends BaseFragment implements msg.obj = bitmap; handler.sendMessage(msg); } - }; + } + + ; }.start(); } @@ -536,7 +538,9 @@ public class TweetPubFragment extends BaseFragment implements keyboardFragment.hideEmojiKeyBoard(); } - /** 跳转选择好友*/ + /** + * 跳转选择好友 + */ private void handleSelectFriends() { //如果没登录,则先去登录界面 if (!AppContext.getInstance().isLogin()) { @@ -558,66 +562,66 @@ public class TweetPubFragment extends BaseFragment implements private void goToSelectPicture(int position) { switch (position) { - case ACTION_TYPE_ALBUM: - Intent intent; - if (Build.VERSION.SDK_INT < 19) { - intent = new Intent(); - intent.setAction(Intent.ACTION_GET_CONTENT); - intent.setType("image/*"); - startActivityForResult(Intent.createChooser(intent, "选择图片"), - ImageUtils.REQUEST_CODE_GETIMAGE_BYSDCARD); - } else { - intent = new Intent(Intent.ACTION_PICK, - Images.Media.EXTERNAL_CONTENT_URI); - intent.setType("image/*"); - startActivityForResult(Intent.createChooser(intent, "选择图片"), - ImageUtils.REQUEST_CODE_GETIMAGE_BYSDCARD); - } - break; - case ACTION_TYPE_PHOTO: - // 判断是否挂载了SD卡 - String savePath = ""; - String storageState = Environment.getExternalStorageState(); - if (storageState.equals(Environment.MEDIA_MOUNTED)) { - savePath = Environment.getExternalStorageDirectory() - .getAbsolutePath() + "/oschina/Camera/"; - File savedir = new File(savePath); - if (!savedir.exists()) { - savedir.mkdirs(); + case ACTION_TYPE_ALBUM: + Intent intent; + if (Build.VERSION.SDK_INT < 19) { + intent = new Intent(); + intent.setAction(Intent.ACTION_GET_CONTENT); + intent.setType("image/*"); + startActivityForResult(Intent.createChooser(intent, "选择图片"), + ImageUtils.REQUEST_CODE_GETIMAGE_BYSDCARD); + } else { + intent = new Intent(Intent.ACTION_PICK, + Images.Media.EXTERNAL_CONTENT_URI); + intent.setType("image/*"); + startActivityForResult(Intent.createChooser(intent, "选择图片"), + ImageUtils.REQUEST_CODE_GETIMAGE_BYSDCARD); + } + break; + case ACTION_TYPE_PHOTO: + // 判断是否挂载了SD卡 + String savePath = ""; + String storageState = Environment.getExternalStorageState(); + if (storageState.equals(Environment.MEDIA_MOUNTED)) { + savePath = Environment.getExternalStorageDirectory() + .getAbsolutePath() + "/oschina/Camera/"; + File savedir = new File(savePath); + if (!savedir.exists()) { + savedir.mkdirs(); + } } - } - // 没有挂载SD卡,无法保存文件 - if (StringUtils.isEmpty(savePath)) { - AppContext.showToastShort("无法保存照片,请检查SD卡是否挂载"); - return; - } + // 没有挂载SD卡,无法保存文件 + if (StringUtils.isEmpty(savePath)) { + AppContext.showToastShort("无法保存照片,请检查SD卡是否挂载"); + return; + } - String timeStamp = new SimpleDateFormat("yyyyMMddHHmmss") - .format(new Date()); - String fileName = "osc_" + timeStamp + ".jpg";// 照片命名 - File out = new File(savePath, fileName); - Uri uri = Uri.fromFile(out); - - theLarge = savePath + fileName;// 该照片的绝对路径 - - intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); - startActivityForResult(intent, - ImageUtils.REQUEST_CODE_GETIMAGE_BYCAMERA); - break; - case ACTION_TYPE_TOPIC: - Bundle bundle = getArguments(); - if (bundle != null) { - String topic = bundle.getString("tweet_topic"); - setContentText(topic); - if (mEtInput != null) { - mEtInput.setSelection(topic.length()); + String timeStamp = new SimpleDateFormat("yyyyMMddHHmmss") + .format(new Date()); + String fileName = "osc_" + timeStamp + ".jpg";// 照片命名 + File out = new File(savePath, fileName); + Uri uri = Uri.fromFile(out); + + theLarge = savePath + fileName;// 该照片的绝对路径 + + intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); + startActivityForResult(intent, + ImageUtils.REQUEST_CODE_GETIMAGE_BYCAMERA); + break; + case ACTION_TYPE_TOPIC: + Bundle bundle = getArguments(); + if (bundle != null) { + String topic = bundle.getString("tweet_topic"); + setContentText(topic); + if (mEtInput != null) { + mEtInput.setSelection(topic.length()); + } } - } - break; - default: - break; + break; + default: + break; } } @@ -675,10 +679,12 @@ public class TweetPubFragment extends BaseFragment implements } @Override - public void initData() {} + public void initData() { + } @Override - public void onDeleteButtonClick(View v) {} + public void onDeleteButtonClick(View v) { + } @Override public void onEmojiClick(Emojicon v) { diff --git a/app/src/main/java/net/oschina/app/util/ImageUtils.java b/app/src/main/java/net/oschina/app/util/ImageUtils.java index 2df194f6b..e0573f2d0 100644 --- a/app/src/main/java/net/oschina/app/util/ImageUtils.java +++ b/app/src/main/java/net/oschina/app/util/ImageUtils.java @@ -1,16 +1,5 @@ package net.oschina.app.util; -import java.io.BufferedOutputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.sql.Timestamp; -import java.text.SimpleDateFormat; - import android.app.Activity; import android.content.ContentResolver; import android.content.Context; @@ -38,9 +27,20 @@ import android.provider.MediaStore; import android.provider.MediaStore.MediaColumns; import android.util.DisplayMetrics; +import java.io.BufferedOutputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; + /** * 图片操作工具包 - * + * * @author liux (http://my.oschina.net/liux) * @version 1.0 * @created 2012-3-21 @@ -50,18 +50,26 @@ public class ImageUtils { public final static String SDCARD_MNT = "/mnt/sdcard"; public final static String SDCARD = "/sdcard"; - /** 请求相册 */ + /** + * 请求相册 + */ public static final int REQUEST_CODE_GETIMAGE_BYSDCARD = 0; - /** 请求相机 */ + /** + * 请求相机 + */ public static final int REQUEST_CODE_GETIMAGE_BYCAMERA = 1; - /** 请求裁剪 */ + /** + * 请求裁剪 + */ public static final int REQUEST_CODE_GETIMAGE_BYCROP = 2; - /** 从图片浏览界面发送动弹 */ + /** + * 从图片浏览界面发送动弹 + */ public static final int REQUEST_CODE_GETIMAGE_IMAGEPAVER = 3; /** * 写图片文件 在Android系统中,文件保存在 /data/data/PACKAGE_NAME/files 目录下 - * + * * @throws IOException */ public static void saveImage(Context context, String fileName, Bitmap bitmap) @@ -70,7 +78,7 @@ public class ImageUtils { } public static void saveImage(Context context, String fileName, - Bitmap bitmap, int quality) throws IOException { + Bitmap bitmap, int quality) throws IOException { if (bitmap == null || fileName == null || context == null) return; @@ -85,11 +93,11 @@ public class ImageUtils { /** * 写图片文件到SD卡 - * + * * @throws IOException */ public static void saveImageToSD(Context ctx, String filePath, - Bitmap bitmap, int quality) throws IOException { + Bitmap bitmap, int quality) throws IOException { if (bitmap != null) { File file = new File(filePath.substring(0, filePath.lastIndexOf(File.separator))); @@ -108,7 +116,7 @@ public class ImageUtils { } public static void saveBackgroundImage(Context ctx, String filePath, - Bitmap bitmap, int quality) throws IOException { + Bitmap bitmap, int quality) throws IOException { if (bitmap != null) { File file = new File(filePath.substring(0, filePath.lastIndexOf(File.separator))); @@ -140,7 +148,7 @@ public class ImageUtils { /** * 获取bitmap - * + * * @param context * @param fileName * @return @@ -166,7 +174,7 @@ public class ImageUtils { /** * 获取bitmap - * + * * @param filePath * @return */ @@ -175,7 +183,7 @@ public class ImageUtils { } public static Bitmap getBitmapByPath(String filePath, - BitmapFactory.Options opts) { + BitmapFactory.Options opts) { FileInputStream fis = null; Bitmap bitmap = null; try { @@ -197,7 +205,7 @@ public class ImageUtils { /** * 获取bitmap - * + * * @param file * @return */ @@ -222,7 +230,7 @@ public class ImageUtils { /** * 使用当前时间戳拼接一个唯一的文件名 - * + * * @param format * @return */ @@ -235,7 +243,7 @@ public class ImageUtils { /** * 获取照相机使用的目录 - * + * * @return */ public static String getCamerPath() { @@ -245,7 +253,7 @@ public class ImageUtils { /** * 判断当前Url是否标准的content://样式,如果不是,则返回绝对路径 - * + * * @param uri * @return */ @@ -270,16 +278,16 @@ public class ImageUtils { /** * 通过uri获取文件的绝对路径 - * + * * @param uri * @return */ @SuppressWarnings("deprecation") public static String getAbsoluteImagePath(Activity context, Uri uri) { String imagePath = ""; - String[] proj = { MediaStore.Images.Media.DATA }; + String[] proj = {MediaStore.Images.Media.DATA}; Cursor cursor = context.managedQuery(uri, proj, // Which columns to - // return + // return null, // WHERE clause; which rows to return (all rows) null, // WHERE clause selection arguments (none) null); // Order-by clause (ascending by name) @@ -297,19 +305,18 @@ public class ImageUtils { /** * 获取图片缩略图 只有Android2.1以上版本支持 - * + * * @param imgName - * @param kind - * MediaStore.Images.Thumbnails.MICRO_KIND + * @param kind MediaStore.Images.Thumbnails.MICRO_KIND * @return */ @SuppressWarnings("deprecation") public static Bitmap loadImgThumbnail(Activity context, String imgName, - int kind) { + int kind) { Bitmap bitmap = null; - String[] proj = { MediaStore.Images.Media._ID, - MediaStore.Images.Media.DISPLAY_NAME }; + String[] proj = {MediaStore.Images.Media._ID, + MediaStore.Images.Media.DISPLAY_NAME}; Cursor cursor = context.managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, proj, @@ -333,13 +340,13 @@ public class ImageUtils { /** * 获取SD卡中最新图片路径 - * + * * @return */ public static String getLatestImage(Activity context) { String latestImage = null; - String[] items = { MediaStore.Images.Media._ID, - MediaStore.Images.Media.DATA }; + String[] items = {MediaStore.Images.Media._ID, + MediaStore.Images.Media.DATA}; Cursor cursor = context.managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, items, null, null, MediaStore.Images.Media._ID + " desc"); @@ -358,7 +365,7 @@ public class ImageUtils { /** * 计算缩放图片的宽高 - * + * * @param img_size * @param square_size * @return @@ -368,27 +375,23 @@ public class ImageUtils { return img_size; double ratio = square_size / (double) Math.max(img_size[0], img_size[1]); - return new int[] { (int) (img_size[0] * ratio), - (int) (img_size[1] * ratio) }; + return new int[]{(int) (img_size[0] * ratio), + (int) (img_size[1] * ratio)}; } /** * 创建缩略图 - * + * * @param context - * @param largeImagePath - * 原始大图路径 - * @param thumbfilePath - * 输出缩略图路径 - * @param square_size - * 输出图片宽度 - * @param quality - * 输出图片质量 + * @param largeImagePath 原始大图路径 + * @param thumbfilePath 输出缩略图路径 + * @param square_size 输出图片宽度 + * @param quality 输出图片质量 * @throws IOException */ public static void createImageThumbnail(Context context, - String largeImagePath, String thumbfilePath, int square_size, - int quality) throws IOException { + String largeImagePath, String thumbfilePath, int square_size, + int quality) throws IOException { BitmapFactory.Options opts = new BitmapFactory.Options(); opts.inSampleSize = 1; // 原始图片bitmap @@ -398,8 +401,8 @@ public class ImageUtils { return; // 原始图片的高宽 - int[] cur_img_size = new int[] { cur_bitmap.getWidth(), - cur_bitmap.getHeight() }; + int[] cur_img_size = new int[]{cur_bitmap.getWidth(), + cur_bitmap.getHeight()}; // 计算原始图片缩放后的宽高 int[] new_img_size = scaleImageSize(cur_img_size, square_size); // 生成缩放后的bitmap @@ -411,7 +414,7 @@ public class ImageUtils { /** * 放大缩小图片 - * + * * @param bitmap * @param w * @param h @@ -456,9 +459,8 @@ public class ImageUtils { /** * (缩放)重绘图片 - * - * @param context - * Activity + * + * @param context Activity * @param bitmap * @return */ @@ -491,7 +493,7 @@ public class ImageUtils { /** * 将Drawable转化为Bitmap - * + * * @param drawable * @return */ @@ -510,10 +512,9 @@ public class ImageUtils { /** * 获得圆角图片的方法 - * + * * @param bitmap - * @param roundPx - * 一般设成14 + * @param roundPx 一般设成14 * @return */ public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, float roundPx) { @@ -540,7 +541,7 @@ public class ImageUtils { /** * 获得带倒影的图片方法 - * + * * @param bitmap * @return */ @@ -581,7 +582,7 @@ public class ImageUtils { /** * 将bitmap转化为drawable - * + * * @param bitmap * @return */ @@ -592,7 +593,7 @@ public class ImageUtils { /** * 获取图片类型 - * + * * @param file * @return */ @@ -619,7 +620,7 @@ public class ImageUtils { /** * 获取图片的类型信息 - * + * * @param in * @return * @see #getImageType(byte[]) @@ -639,9 +640,8 @@ public class ImageUtils { /** * 获取图片的类型信息 - * - * @param bytes - * 2~8 byte at beginning of the image file + * + * @param bytes 2~8 byte at beginning of the image file * @return image mimetype or null if the file is not image */ public static String getImageType(byte[] bytes) { @@ -693,14 +693,14 @@ public class ImageUtils { /** * 获取图片路径 2014年8月12日 - * + * * @param uri * @param cursor * @return E-mail:mr.huangwenwei@gmail.com */ public static String getImagePath(Uri uri, Activity context) { - String[] projection = { MediaColumns.DATA }; + String[] projection = {MediaColumns.DATA}; Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null); if (cursor != null) { @@ -718,15 +718,14 @@ public class ImageUtils { /** * 2014年8月13日 - * + * * @param uri - * @param context - * E-mail:mr.huangwenwei@gmail.com + * @param context E-mail:mr.huangwenwei@gmail.com */ public static Bitmap loadPicasaImageFromGalley(final Uri uri, - final Activity context) { + final Activity context) { - String[] projection = { MediaColumns.DATA, MediaColumns.DISPLAY_NAME }; + String[] projection = {MediaColumns.DATA, MediaColumns.DISPLAY_NAME}; Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null); if (cursor != null) { -- Gitee From 79281c7b47c49ef4145ad482ad27cff7a329e332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B7=B4=E6=8B=89=E8=BF=AA=E7=BB=B4?= Date: Thu, 16 Jun 2016 14:58:02 +0800 Subject: [PATCH 02/27] =?UTF-8?q?=E6=B8=85=E7=90=86=E4=B8=BB=E5=88=86?= =?UTF-8?q?=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 126 -- app/.gitignore | 1 - app/build.gradle | 34 - app/libs/baidumapapi_v3_2_0.jar | Bin 839977 -> 0 bytes app/libs/library-2.4.0.jar | Bin 110747 -> 0 bytes app/libs/locSDK_3.1.jar | Bin 99119 -> 0 bytes app/libs/pinyin4j-2.5.0.jar | Bin 182615 -> 0 bytes app/libs/xstream-1.4.7.jar | Bin 531571 -> 0 bytes app/proguard-rules.pro | 17 - .../java/net/oschina/app/ApplicationTest.java | 13 - app/src/main/AndroidManifest.xml | 247 ---- .../oschina/app/service/INoticeService.aidl | 8 - app/src/main/assets/brush.js | 12 - app/src/main/assets/client.js | 20 - app/src/main/assets/css/common.css | 204 --- app/src/main/assets/detail_page.html | 16 - app/src/main/assets/detail_page.js | 55 - app/src/main/assets/fontawesome-webfont.ttf | Bin 122092 -> 0 bytes app/src/main/assets/ic_soft_recommend.png | Bin 1943 -> 0 bytes app/src/main/assets/shCore.css | 303 ----- app/src/main/assets/shCore.js | 32 - app/src/main/assets/shThemeDefault.css | 142 --- .../dtr/zxing/activity/CaptureActivity.java | 572 --------- .../dtr/zxing/camera/AutoFocusManager.java | 135 -- .../camera/CameraConfigurationManager.java | 226 ---- .../com/dtr/zxing/camera/CameraManager.java | 232 ---- .../com/dtr/zxing/camera/PreviewCallback.java | 55 - .../camera/open/OpenCameraInterface.java | 86 -- .../dtr/zxing/decode/DecodeFormatManager.java | 51 - .../com/dtr/zxing/decode/DecodeHandler.java | 159 --- .../com/dtr/zxing/decode/DecodeThread.java | 100 -- .../java/com/dtr/zxing/utils/BeepManager.java | 143 --- .../zxing/utils/CaptureActivityHandler.java | 111 -- .../com/dtr/zxing/utils/InactivityTimer.java | 124 -- .../date/AccessibleDateAnimator.java | 45 - .../date/DatePickerController.java | 26 - .../datetimepicker/date/DatePickerDialog.java | 477 ------- .../datetimepicker/date/DayPickerView.java | 281 ----- .../date/SimpleMonthAdapter.java | 170 --- .../datetimepicker/date/SimpleMonthView.java | 359 ------ .../date/TextViewWithCircularIndicator.java | 67 - .../fourmob/datetimepicker/date/Utils.java | 90 -- .../datetimepicker/date/YearPickerView.java | 140 --- .../main/java/net/oschina/app/AppConfig.java | 146 --- .../main/java/net/oschina/app/AppContext.java | 347 ------ .../java/net/oschina/app/AppException.java | 233 ---- .../main/java/net/oschina/app/AppManager.java | 127 -- .../main/java/net/oschina/app/AppStart.java | 94 -- .../net/oschina/app/LogUploadService.java | 55 - .../oschina/app/adapter/ActiveAdapter.java | 222 ---- .../net/oschina/app/adapter/BlogAdapter.java | 90 -- .../oschina/app/adapter/CommentAdapter.java | 160 --- .../net/oschina/app/adapter/EventAdapter.java | 102 -- .../app/adapter/EventApplyAdapter.java | 65 - .../oschina/app/adapter/FindUserAdapter.java | 74 -- .../oschina/app/adapter/FriendAdapter.java | 82 -- .../oschina/app/adapter/MessageAdapter.java | 85 -- .../app/adapter/MessageDetailAdapter.java | 253 ---- .../net/oschina/app/adapter/NewsAdapter.java | 84 -- .../net/oschina/app/adapter/PostAdapter.java | 89 -- .../net/oschina/app/adapter/RecycleBin.java | 155 --- .../app/adapter/RecyclingPagerAdapter.java | 122 -- .../oschina/app/adapter/SearchAdapter.java | 70 -- .../app/adapter/SearchFriendAdapter.java | 111 -- .../app/adapter/SelectFriendAdapter.java | 219 ---- .../oschina/app/adapter/SoftwareAdapter.java | 58 - .../adapter/SoftwareCatalogListAdapter.java | 39 - .../net/oschina/app/adapter/TweetAdapter.java | 251 ---- .../oschina/app/adapter/TweetLikeAdapter.java | 87 -- .../app/adapter/TweetLikeUsersAdapter.java | 53 - .../app/adapter/UserFavoriteAdapter.java | 41 - .../app/adapter/ViewPageFragmentAdapter.java | 124 -- .../net/oschina/app/adapter/ViewPageInfo.java | 18 - .../net/oschina/app/api/ApiClientHelper.java | 22 - .../net/oschina/app/api/ApiHttpClient.java | 149 --- .../java/net/oschina/app/api/ApiResponse.java | 90 -- .../app/api/OperationResponseHandler.java | 46 - .../oschina/app/api/remote/OSChinaApi.java | 1029 ---------------- .../app/api/remote/OSChinaTeamApi.java | 426 ------- .../net/oschina/app/base/BaseActivity.java | 217 ---- .../net/oschina/app/base/BaseApplication.java | 264 ---- .../net/oschina/app/base/BaseFragment.java | 119 -- .../oschina/app/base/BaseListFragment.java | 606 --------- .../net/oschina/app/base/BaseNewActivity.java | 11 - .../app/base/BaseViewPagerFragment.java | 65 - .../app/base/BeseHaveHeaderListFragment.java | 178 --- .../app/base/CommonDetailFragment.java | 558 --------- .../net/oschina/app/base/ListBaseAdapter.java | 301 ----- .../java/net/oschina/app/bean/Active.java | 240 ---- .../java/net/oschina/app/bean/ActiveList.java | 60 - .../main/java/net/oschina/app/bean/Apply.java | 61 - .../java/net/oschina/app/bean/BarCode.java | 102 -- .../main/java/net/oschina/app/bean/Base.java | 26 - .../main/java/net/oschina/app/bean/Blog.java | 126 -- .../net/oschina/app/bean/BlogCommentList.java | 41 - .../java/net/oschina/app/bean/BlogDetail.java | 25 - .../java/net/oschina/app/bean/BlogList.java | 67 - .../java/net/oschina/app/bean/Comment.java | 287 ----- .../net/oschina/app/bean/CommentList.java | 60 - .../java/net/oschina/app/bean/Constants.java | 26 - .../java/net/oschina/app/bean/Entity.java | 35 - .../main/java/net/oschina/app/bean/Event.java | 186 --- .../oschina/app/bean/EventAppliesList.java | 33 - .../net/oschina/app/bean/EventApplyData.java | 92 -- .../java/net/oschina/app/bean/EventList.java | 38 - .../net/oschina/app/bean/EventRemark.java | 51 - .../java/net/oschina/app/bean/Favorite.java | 54 - .../net/oschina/app/bean/FavoriteList.java | 50 - .../net/oschina/app/bean/FindUserList.java | 37 - .../java/net/oschina/app/bean/Friend.java | 81 -- .../net/oschina/app/bean/FriendsList.java | 37 - .../java/net/oschina/app/bean/ListEntity.java | 9 - .../net/oschina/app/bean/LoginUserBean.java | 37 - .../net/oschina/app/bean/MessageDetail.java | 115 -- .../oschina/app/bean/MessageDetailList.java | 43 - .../net/oschina/app/bean/MessageList.java | 43 - .../java/net/oschina/app/bean/Messages.java | 118 -- .../net/oschina/app/bean/MyInformation.java | 26 - .../main/java/net/oschina/app/bean/News.java | 225 ---- .../java/net/oschina/app/bean/NewsDetail.java | 25 - .../java/net/oschina/app/bean/NewsList.java | 71 -- .../net/oschina/app/bean/NotebookData.java | 159 --- .../oschina/app/bean/NotebookDataList.java | 25 - .../java/net/oschina/app/bean/Notice.java | 81 -- .../net/oschina/app/bean/NoticeDetail.java | 27 - .../net/oschina/app/bean/OpenIdCatalog.java | 12 - .../main/java/net/oschina/app/bean/Post.java | 229 ---- .../java/net/oschina/app/bean/PostDetail.java | 26 - .../java/net/oschina/app/bean/PostList.java | 42 - .../java/net/oschina/app/bean/Report.java | 60 - .../java/net/oschina/app/bean/Result.java | 43 - .../java/net/oschina/app/bean/ResultBean.java | 81 -- .../java/net/oschina/app/bean/SearchList.java | 43 - .../net/oschina/app/bean/SearchResult.java | 88 -- .../net/oschina/app/bean/ShakeObject.java | 113 -- .../net/oschina/app/bean/SimpleBackPage.java | 185 --- .../net/oschina/app/bean/SingInResult.java | 67 - .../java/net/oschina/app/bean/Software.java | 202 --- .../oschina/app/bean/SoftwareCatalogList.java | 67 - .../net/oschina/app/bean/SoftwareDec.java | 45 - .../net/oschina/app/bean/SoftwareDetail.java | 26 - .../net/oschina/app/bean/SoftwareList.java | 54 - .../main/java/net/oschina/app/bean/Tweet.java | 355 ------ .../net/oschina/app/bean/TweetDetail.java | 23 - .../java/net/oschina/app/bean/TweetLike.java | 61 - .../net/oschina/app/bean/TweetLikeList.java | 32 - .../oschina/app/bean/TweetLikeUserList.java | 30 - .../java/net/oschina/app/bean/TweetsList.java | 57 - .../java/net/oschina/app/bean/Update.java | 146 --- .../main/java/net/oschina/app/bean/User.java | 230 ---- .../net/oschina/app/bean/UserInformation.java | 49 - .../oschina/app/broadcast/AlarmReceiver.java | 16 - .../net/oschina/app/cache/CacheManager.java | 126 -- .../oschina/app/cache/DataCleanManager.java | 120 -- .../net/oschina/app/cache/DiskLruCache.java | 953 -------------- .../oschina/app/cache/DiskLruCacheUtil.java | 151 --- .../net/oschina/app/db/DatabaseHelper.java | 45 - .../java/net/oschina/app/db/NoteDatabase.java | 161 --- .../net/oschina/app/emoji/DisplayRules.java | 907 -------------- .../oschina/app/emoji/EmojiGridAdapter.java | 95 -- .../app/emoji/EmojiKeyboardFragment.java | 163 --- .../oschina/app/emoji/EmojiPageFragment.java | 97 -- .../oschina/app/emoji/EmojiPagerAdapter.java | 65 - .../java/net/oschina/app/emoji/Emojicon.java | 50 - .../net/oschina/app/emoji/InputHelper.java | 130 -- .../net/oschina/app/emoji/JSViewPager.java | 44 - .../net/oschina/app/emoji/KJEmojiConfig.java | 32 - .../oschina/app/emoji/KJEmojiFragment.java | 269 ---- .../app/emoji/OnEmojiClickListener.java | 9 - .../app/emoji/OnSendClickListener.java | 28 - .../net/oschina/app/emoji/ScrollGridView.java | 46 - .../app/emoji/SoftKeyboardStateHelper.java | 117 -- .../oschina/app/emoji/ToolbarFragment.java | 125 -- .../app/fragment/AboutOSCFragment.java | 98 -- .../oschina/app/fragment/ActiveFragment.java | 212 ---- .../app/fragment/BlogDetailFragment.java | 133 -- .../oschina/app/fragment/BlogFragment.java | 98 -- .../oschina/app/fragment/BrowserFragment.java | 355 ------ .../oschina/app/fragment/CommentFrament.java | 337 ----- .../app/fragment/EventAppliesFragment.java | 76 -- .../app/fragment/EventDetailFragment.java | 322 ----- .../oschina/app/fragment/EventFragment.java | 152 --- .../oschina/app/fragment/ExploreFragment.java | 111 -- .../app/fragment/FeedBackFragment.java | 96 -- .../oschina/app/fragment/FriendsFragment.java | 137 --- .../app/fragment/MessageDetailFragment.java | 461 ------- .../oschina/app/fragment/MessageFragment.java | 239 ---- .../app/fragment/MyInformationFragment.java | 421 ------- .../fragment/MyInformationFragmentDetail.java | 402 ------ .../app/fragment/NewsDetailFragment.java | 127 -- .../oschina/app/fragment/NewsFragment.java | 106 -- .../app/fragment/PostDetailFragment.java | 129 -- .../oschina/app/fragment/PostsFragment.java | 64 - .../app/fragment/QuestionTagFragment.java | 79 -- .../oschina/app/fragment/SearchFragment.java | 93 -- .../app/fragment/SettingsFragment.java | 174 --- .../SettingsNotificationFragment.java | 90 -- .../app/fragment/SoftWareTweetsFrament.java | 116 -- .../fragment/SoftwareCatalogListFragment.java | 329 ----- .../app/fragment/SoftwareDetailFragment.java | 196 --- .../app/fragment/SoftwareListFragment.java | 92 -- .../app/fragment/TweetDetailFragment.java | 548 --------- .../app/fragment/TweetLikeUsersFragment.java | 77 -- .../app/fragment/TweetPubFragment.java | 693 ----------- .../app/fragment/TweetRecordFragment.java | 213 ---- .../oschina/app/fragment/TweetsFragment.java | 273 ----- .../app/fragment/TweetsLikesFragment.java | 183 --- .../app/fragment/UserBlogFragment.java | 61 - .../app/fragment/UserCenterFragment.java | 473 ------- .../app/fragment/UserFavoriteFragment.java | 79 -- .../app/interf/BaseFragmentInterface.java | 17 - .../oschina/app/interf/BaseViewInterface.java | 14 - .../oschina/app/interf/ICallbackResult.java | 12 - .../app/interf/OnTabReselectListener.java | 12 - .../app/interf/OnWebViewImageListener.java | 17 - .../oschina/app/service/DownloadService.java | 302 ----- .../oschina/app/service/INoticeService.aidl | 8 - .../oschina/app/service/NoticeService.java | 308 ----- .../net/oschina/app/service/NoticeUtils.java | 116 -- .../app/service/PublicCommentTask.java | 90 -- .../app/service/ServerTaskService.java | 306 ----- .../oschina/app/service/ServerTaskUtils.java | 31 - .../app/team/adapter/NotebookAdapter.java | 164 --- .../app/team/adapter/TeamActiveAdapter.java | 151 --- .../team/adapter/TeamDiaryDetailAdapter.java | 149 --- .../team/adapter/TeamDiaryListAdapter.java | 91 -- .../team/adapter/TeamDiaryPagerAdapter.java | 48 - .../app/team/adapter/TeamDiscussAdapter.java | 78 -- .../app/team/adapter/TeamIssueAdapter.java | 199 --- .../team/adapter/TeamIssueCatalogAdapter.java | 63 - .../app/team/adapter/TeamMemberAdapter.java | 106 -- .../team/adapter/TeamProjectListAdapter.java | 101 -- .../adapter/TeamProjectListAdapterNew.java | 75 -- .../adapter/TeamProjectMemberAdapter.java | 55 - .../app/team/adapter/TeamReplyAdapter.java | 119 -- .../team/adapter/TeamSelectMemberAdapter.java | 72 -- .../net/oschina/app/team/bean/Author.java | 42 - .../oschina/app/team/bean/MyIssueState.java | 97 -- .../java/net/oschina/app/team/bean/Team.java | 130 -- .../net/oschina/app/team/bean/TeamActive.java | 167 --- .../app/team/bean/TeamActiveDetail.java | 27 - .../oschina/app/team/bean/TeamActives.java | 41 - .../net/oschina/app/team/bean/TeamDiary.java | 66 - .../app/team/bean/TeamDiaryDetail.java | 98 -- .../app/team/bean/TeamDiaryDetailBean.java | 21 - .../oschina/app/team/bean/TeamDiaryList.java | 48 - .../oschina/app/team/bean/TeamDiscuss.java | 87 -- .../app/team/bean/TeamDiscussDetail.java | 29 - .../app/team/bean/TeamDiscussList.java | 48 - .../net/oschina/app/team/bean/TeamGit.java | 68 - .../net/oschina/app/team/bean/TeamIssue.java | 584 --------- .../app/team/bean/TeamIssueCatalog.java | 84 -- .../app/team/bean/TeamIssueCatalogList.java | 45 - .../app/team/bean/TeamIssueDetail.java | 31 - .../oschina/app/team/bean/TeamIssueList.java | 54 - .../net/oschina/app/team/bean/TeamList.java | 96 -- .../net/oschina/app/team/bean/TeamMember.java | 139 --- .../oschina/app/team/bean/TeamMemberList.java | 34 - .../oschina/app/team/bean/TeamMyActive.java | 141 --- .../app/team/bean/TeamMyActiveList.java | 27 - .../oschina/app/team/bean/TeamProject.java | 102 -- .../app/team/bean/TeamProjectList.java | 34 - .../app/team/bean/TeamRepliesList.java | 57 - .../net/oschina/app/team/bean/TeamReply.java | 100 -- .../oschina/app/team/bean/TeamReplyBean.java | 30 - .../app/team/fragment/IssueListFragment.java | 57 - .../app/team/fragment/MyIssueFragment.java | 95 -- .../app/team/fragment/NoteBookFragment.java | 363 ------ .../app/team/fragment/NoteEditFragment.java | 265 ---- .../app/team/fragment/TeamActiveFragment.java | 122 -- .../app/team/fragment/TeamBoardFragment.java | 282 ----- .../fragment/TeamDiaryDetailFragment.java | 316 ----- .../fragment/TeamDiscussDetailFragment.java | 220 ---- .../team/fragment/TeamDiscussFragment.java | 95 -- .../fragment/TeamIssueCatalogFragment.java | 99 -- .../fragment/TeamIssueDetailFragment.java | 615 ---------- .../app/team/fragment/TeamIssueFragment.java | 228 ---- .../app/team/fragment/TeamMemberFragment.java | 226 ---- .../TeamMemberInformationFragment.java | 181 --- .../fragment/TeamProjectActiveFragment.java | 119 -- .../team/fragment/TeamProjectFragment.java | 119 -- .../fragment/TeamProjectMemberFragment.java | 111 -- .../TeamProjectMemberSelectFragment.java | 33 - .../TeamProjectSelectPopupWindow.java | 175 --- .../fragment/TeamTweetDetailFragment.java | 399 ------ .../oschina/app/team/ui/TeamMainActivity.java | 297 ----- .../app/team/ui/TeamNewActiveActivity.java | 591 --------- .../app/team/ui/TeamNewIssueActivity.java | 571 --------- .../MyIssuePagerfragment.java | 66 - .../viewpagefragment/TeamDiaryFragment.java | 192 --- .../TeamIssueViewPageFragment.java | 194 --- .../TeamMainViewPagerFragment.java | 100 -- .../TeamProjectViewPagerFragment.java | 82 -- .../net/oschina/app/ui/DetailActivity.java | 245 ---- .../oschina/app/ui/DoubleClickExitHelper.java | 67 - .../net/oschina/app/ui/EventApplyDialog.java | 170 --- .../oschina/app/ui/EventLocationActivity.java | 224 ---- .../net/oschina/app/ui/FindUserActivity.java | 157 --- .../oschina/app/ui/ImagePreviewActivity.java | 272 ---- .../ui/LoginAccountBindOpenIdActivity.java | 132 -- .../net/oschina/app/ui/LoginActivity.java | 420 ------- .../ui/LoginBindActivityChooseActivity.java | 157 --- .../java/net/oschina/app/ui/MainActivity.java | 407 ------ .../main/java/net/oschina/app/ui/MainTab.java | 69 -- .../net/oschina/app/ui/MyQrodeDialog.java | 91 -- .../app/ui/NavigationDrawerFragment.java | 312 ----- .../net/oschina/app/ui/QuickOptionDialog.java | 161 --- .../java/net/oschina/app/ui/ReportDialog.java | 99 -- .../oschina/app/ui/SelectFriendsActivity.java | 987 --------------- .../net/oschina/app/ui/ShakeActivity.java | 236 ---- .../java/net/oschina/app/ui/ShareDialog.java | 226 ---- .../oschina/app/ui/SimpleBackActivity.java | 186 --- .../net/oschina/app/ui/TweetActivity.java | 103 -- .../oschina/app/ui/dialog/CommonDialog.java | 328 ----- .../oschina/app/ui/dialog/CommonToast.java | 157 --- .../oschina/app/ui/dialog/DialogAdapter.java | 89 -- .../oschina/app/ui/dialog/DialogControl.java | 14 - .../app/ui/dialog/DialogTitleView.java | 61 - .../app/ui/dialog/ImageMenuDialog.java | 73 -- .../net/oschina/app/ui/empty/EmptyLayout.java | 211 ---- .../net/oschina/app/util/BitmapHelper.java | 88 -- .../oschina/app/util/ChatImageDisplayer.java | 52 - .../oschina/app/util/ChatImageRequest.java | 181 --- .../java/net/oschina/app/util/CyptoUtils.java | 105 -- .../java/net/oschina/app/util/DialogHelp.java | 101 -- .../java/net/oschina/app/util/FileUtil.java | 634 ---------- .../net/oschina/app/util/FontSizeUtils.java | 42 - .../java/net/oschina/app/util/HTMLUtil.java | 165 --- .../java/net/oschina/app/util/ImageUtils.java | 758 ------------ .../net/oschina/app/util/KJAnimations.java | 188 --- .../net/oschina/app/util/MethodsCompat.java | 70 -- .../net/oschina/app/util/PlatfromUtil.java | 44 - .../net/oschina/app/util/QrCodeUtils.java | 49 - .../oschina/app/util/SimpleTextWatcher.java | 27 - .../net/oschina/app/util/StringUtils.java | 568 --------- .../app/util/SynchronizeController.java | 136 -- .../java/net/oschina/app/util/TDevice.java | 716 ----------- .../main/java/net/oschina/app/util/TLog.java | 41 - .../oschina/app/util/ThemeSwitchUtils.java | 41 - .../net/oschina/app/util/TimeZoneUtil.java | 40 - .../net/oschina/app/util/TypefaceUtils.java | 79 -- .../java/net/oschina/app/util/UIHelper.java | 1092 ----------------- .../java/net/oschina/app/util/URLsUtils.java | 253 ---- .../net/oschina/app/util/UpdateManager.java | 126 -- .../java/net/oschina/app/util/ViewUtils.java | 32 - .../java/net/oschina/app/util/XmlUtils.java | 140 --- .../java/net/oschina/app/util/ZipUtils.java | 289 ----- .../BlogViewPagerFragment.java | 52 - .../EventViewPagerFragment.java | 47 - .../FriendsViewPagerFragment.java | 67 - .../NewsViewPagerFragment.java | 93 -- .../NoticeViewPagerFragment.java | 278 ----- .../OpensourceSoftwareFragment.java | 66 - .../QuestViewPagerFragment.java | 53 - .../SearchViewPageFragment.java | 121 -- .../TweetsViewPagerFragment.java | 66 - .../UserFavoriteViewPagerFragment.java | 51 - .../net/oschina/app/widget/AvatarView.java | 102 -- .../net/oschina/app/widget/BadgeView.java | 492 -------- .../oschina/app/widget/CircleImageView.java | 253 ---- .../app/widget/CustomerScrollView.java | 112 -- .../app/widget/DiaryPageContentView.java | 200 --- .../net/oschina/app/widget/EmailSpan.java | 30 - .../net/oschina/app/widget/FloorView.java | 197 --- .../oschina/app/widget/HackyViewPager.java | 72 -- .../oschina/app/widget/HolderTextView.java | 17 - .../net/oschina/app/widget/IndexView.java | 134 -- .../oschina/app/widget/KJDragGridView.java | 682 ---------- .../net/oschina/app/widget/KJScrollView.java | 197 --- .../java/net/oschina/app/widget/LinkView.java | 183 --- .../oschina/app/widget/MyFragmentTabHost.java | 38 - .../app/widget/MyLinkMovementMethod.java | 188 --- .../net/oschina/app/widget/MyURLSpan.java | 217 ---- .../net/oschina/app/widget/NoLinkURLSpan.java | 31 - .../app/widget/NoteItemCircleView.java | 31 - .../app/widget/PagerSlidingTabStrip.java | 562 --------- .../net/oschina/app/widget/RecordButton.java | 410 ------- .../oschina/app/widget/RecordButtonUtil.java | 167 --- .../net/oschina/app/widget/RecordDialog.java | 59 - .../net/oschina/app/widget/ScrollLayout.java | 275 ----- .../net/oschina/app/widget/TweetTextView.java | 115 -- .../main/java/net/oschina/app/widget/am.java | 201 --- .../app/widget/togglebutton/ToggleButton.java | 267 ---- .../rebound/AndroidSpringLooperFactory.java | 141 --- .../rebound/BaseSpringSystem.java | 194 --- .../rebound/OrigamiValueConverter.java | 25 - .../rebound/SimpleSpringListener.java | 29 - .../widget/tooglebutton/rebound/Spring.java | 519 -------- .../tooglebutton/rebound/SpringConfig.java | 44 - .../rebound/SpringConfigRegistry.java | 89 -- .../tooglebutton/rebound/SpringListener.java | 39 - .../tooglebutton/rebound/SpringLooper.java | 40 - .../tooglebutton/rebound/SpringSystem.java | 22 - .../rebound/SpringSystemListener.java | 33 - .../tooglebutton/rebound/SpringUtil.java | 56 - .../tooglebutton/rebound/SteppingLooper.java | 38 - .../rebound/SynchronousLooper.java | 46 - .../rebound/ui/SpringConfiguratorView.java | 421 ------- .../widget/tooglebutton/rebound/ui/Util.java | 43 - .../oschina/app/wxapi/WXEntryActivity.java | 92 -- .../armeabi/libBaiduMapSDK_v3_2_0_15.so | Bin 1140028 -> 0 bytes app/src/main/jniLibs/armeabi/liblocSDK3.so | Bin 40319 -> 0 bytes app/src/main/jniLibs/armeabi/libzbar.so | Bin 95492 -> 0 bytes app/src/main/res/anim/anim_bottom_in.xml | 9 - app/src/main/res/anim/anim_bottom_out.xml | 9 - app/src/main/res/anim/audio_animations.xml | 14 - app/src/main/res/anim/dialog_enter.xml | 10 - app/src/main/res/anim/dialog_exit.xml | 10 - .../main/res/anim/footer_menu_slide_in.xml | 7 - .../main/res/anim/footer_menu_slide_out.xml | 6 - app/src/main/res/anim/in_from_bottom.xml | 10 - app/src/main/res/anim/in_from_top.xml | 10 - app/src/main/res/anim/out_to_bottom.xml | 10 - app/src/main/res/anim/out_to_top.xml | 10 - app/src/main/res/anim/quick_option_close.xml | 12 - .../main/res/color/date_picker_selector.xml | 8 - .../res/color/date_picker_year_selector.xml | 6 - app/src/main/res/color/done_text_color.xml | 6 - app/src/main/res/color/drawer_menu_text.xml | 8 - app/src/main/res/color/primarybar_txt.xml | 8 - .../color/viewpage_selector_slide_title.xml | 7 - .../main/res/drawable-hdpi/action_refresh.png | Bin 509 -> 0 bytes app/src/main/res/drawable-hdpi/alien.png | Bin 5457 -> 0 bytes app/src/main/res/drawable-hdpi/angel.png | Bin 6672 -> 0 bytes app/src/main/res/drawable-hdpi/anger.png | Bin 3079 -> 0 bytes app/src/main/res/drawable-hdpi/angry.png | Bin 5037 -> 0 bytes app/src/main/res/drawable-hdpi/anguished.png | Bin 5091 -> 0 bytes app/src/main/res/drawable-hdpi/ant.png | Bin 2851 -> 0 bytes app/src/main/res/drawable-hdpi/astonished.png | Bin 6043 -> 0 bytes app/src/main/res/drawable-hdpi/audio0.png | Bin 2830 -> 0 bytes app/src/main/res/drawable-hdpi/audio1.png | Bin 1646 -> 0 bytes app/src/main/res/drawable-hdpi/audio2.png | Bin 2164 -> 0 bytes app/src/main/res/drawable-hdpi/audio3.png | Bin 2826 -> 0 bytes app/src/main/res/drawable-hdpi/baby.png | Bin 5921 -> 0 bytes app/src/main/res/drawable-hdpi/baby_chick.png | Bin 3961 -> 0 bytes app/src/main/res/drawable-hdpi/bear.png | Bin 5561 -> 0 bytes app/src/main/res/drawable-hdpi/beetle.png | Bin 5255 -> 0 bytes .../res/drawable-hdpi/bg_edittext_nor.9.png | Bin 665 -> 0 bytes .../res/drawable-hdpi/bg_edittext_sel.9.png | Bin 568 -> 0 bytes app/src/main/res/drawable-hdpi/bird.png | Bin 4878 -> 0 bytes .../drawable-hdpi/biz_chat_comment_send.png | Bin 991 -> 0 bytes .../biz_chat_comment_send_prs.png | Bin 625 -> 0 bytes app/src/main/res/drawable-hdpi/blossom.png | Bin 4232 -> 0 bytes app/src/main/res/drawable-hdpi/blowfish.png | Bin 3737 -> 0 bytes app/src/main/res/drawable-hdpi/blue_heart.png | Bin 4094 -> 0 bytes app/src/main/res/drawable-hdpi/blush.png | Bin 5188 -> 0 bytes app/src/main/res/drawable-hdpi/boar.png | Bin 4840 -> 0 bytes app/src/main/res/drawable-hdpi/boom.png | Bin 3772 -> 0 bytes app/src/main/res/drawable-hdpi/bouquet.png | Bin 6915 -> 0 bytes app/src/main/res/drawable-hdpi/bow.png | Bin 5143 -> 0 bytes app/src/main/res/drawable-hdpi/bowtie.png | Bin 6478 -> 0 bytes app/src/main/res/drawable-hdpi/boy.png | Bin 5946 -> 0 bytes .../res/drawable-hdpi/bride_with_veil.png | Bin 8515 -> 0 bytes .../main/res/drawable-hdpi/broken_heart.png | Bin 4118 -> 0 bytes .../res/drawable-hdpi/btn_blue_normal.9.png | Bin 192 -> 0 bytes .../res/drawable-hdpi/btn_blue_pressed.9.png | Bin 181 -> 0 bytes app/src/main/res/drawable-hdpi/btn_emoji.png | Bin 1242 -> 0 bytes .../res/drawable-hdpi/btn_emoji_pressed.png | Bin 1244 -> 0 bytes .../btn_item_opt_more_normal.png | Bin 328 -> 0 bytes .../btn_item_opt_more_pressed.png | Bin 15145 -> 0 bytes .../main/res/drawable-hdpi/btn_radio_off.png | Bin 19978 -> 0 bytes .../main/res/drawable-hdpi/btn_radio_on.png | Bin 20015 -> 0 bytes .../btn_small_green_normal.9.png | Bin 239 -> 0 bytes .../btn_small_green_pressed.9.png | Bin 234 -> 0 bytes .../btn_small_white_normal.9.png | Bin 326 -> 0 bytes .../btn_small_white_pressed.9.png | Bin 325 -> 0 bytes .../res/drawable-hdpi/btn_white_normal.9.png | Bin 255 -> 0 bytes .../res/drawable-hdpi/btn_white_pressed.9.png | Bin 289 -> 0 bytes app/src/main/res/drawable-hdpi/bug.png | Bin 5945 -> 0 bytes .../res/drawable-hdpi/bust_in_silhouette.png | Bin 2005 -> 0 bytes .../res/drawable-hdpi/busts_in_silhouette.png | Bin 3021 -> 0 bytes app/src/main/res/drawable-hdpi/cactus.png | Bin 4509 -> 0 bytes app/src/main/res/drawable-hdpi/camel.png | Bin 4485 -> 0 bytes app/src/main/res/drawable-hdpi/cat.png | Bin 5987 -> 0 bytes app/src/main/res/drawable-hdpi/cat2.png | Bin 5644 -> 0 bytes .../main/res/drawable-hdpi/cherry_blossom.png | Bin 7174 -> 0 bytes app/src/main/res/drawable-hdpi/chestnut.png | Bin 5875 -> 0 bytes app/src/main/res/drawable-hdpi/chicken.png | Bin 3988 -> 0 bytes app/src/main/res/drawable-hdpi/clap.png | Bin 7110 -> 0 bytes app/src/main/res/drawable-hdpi/cloud.png | Bin 3860 -> 0 bytes app/src/main/res/drawable-hdpi/cold_sweat.png | Bin 5972 -> 0 bytes app/src/main/res/drawable-hdpi/collision.png | Bin 3772 -> 0 bytes .../drawable-hdpi/comment_line_triangle.png | Bin 167 -> 0 bytes .../comment_refer_container_bg.9.png | Bin 229 -> 0 bytes .../compose_clearbutton_background.9.png | Bin 945 -> 0 bytes ...compose_clearbutton_background_press.9.png | Bin 1009 -> 0 bytes .../compose_toolbar_emoji_normal.png | Bin 926 -> 0 bytes .../compose_toolbar_emoji_pressed.png | Bin 15214 -> 0 bytes .../compose_toolbar_keyboard_normal.png | Bin 305 -> 0 bytes .../compose_toolbar_keyboard_pressed.png | Bin 14702 -> 0 bytes .../compose_toolbar_mention_normal.png | Bin 1402 -> 0 bytes .../compose_toolbar_mention_pressed.png | Bin 15458 -> 0 bytes .../compose_toolbar_picture_normal.png | Bin 647 -> 0 bytes .../compose_toolbar_picture_pressed.png | Bin 14887 -> 0 bytes .../compose_toolbar_trend_normal.png | Bin 218 -> 0 bytes .../compose_toolbar_trend_pressed.png | Bin 14640 -> 0 bytes app/src/main/res/drawable-hdpi/confounded.png | Bin 5857 -> 0 bytes app/src/main/res/drawable-hdpi/confused.png | Bin 4633 -> 0 bytes .../res/drawable-hdpi/construction_worker.png | Bin 6193 -> 0 bytes app/src/main/res/drawable-hdpi/cop.png | Bin 7141 -> 0 bytes app/src/main/res/drawable-hdpi/couple.png | Bin 7615 -> 0 bytes .../res/drawable-hdpi/couple_with_heart.png | Bin 7370 -> 0 bytes app/src/main/res/drawable-hdpi/couplekiss.png | Bin 7219 -> 0 bytes app/src/main/res/drawable-hdpi/cow.png | Bin 5745 -> 0 bytes app/src/main/res/drawable-hdpi/cow2.png | Bin 5303 -> 0 bytes app/src/main/res/drawable-hdpi/crocodile.png | Bin 6125 -> 0 bytes app/src/main/res/drawable-hdpi/cry.png | Bin 5699 -> 0 bytes .../res/drawable-hdpi/crying_cat_face.png | Bin 6682 -> 0 bytes app/src/main/res/drawable-hdpi/cupid.png | Bin 5413 -> 0 bytes app/src/main/res/drawable-hdpi/cyclone.png | Bin 4890 -> 0 bytes app/src/main/res/drawable-hdpi/dancer.png | Bin 3726 -> 0 bytes app/src/main/res/drawable-hdpi/dancers.png | Bin 7918 -> 0 bytes app/src/main/res/drawable-hdpi/dash.png | Bin 5448 -> 0 bytes .../day_comment_reply_container_bg.9.png | Bin 217 -> 0 bytes .../main/res/drawable-hdpi/deciduous_tree.png | Bin 7263 -> 0 bytes .../res/drawable-hdpi/dialog_background.9.png | Bin 1227 -> 0 bytes .../dialog_bottom_background.9.png | Bin 348 -> 0 bytes .../main/res/drawable-hdpi/disappointed.png | Bin 4764 -> 0 bytes .../drawable-hdpi/disappointed_relieved.png | Bin 5648 -> 0 bytes app/src/main/res/drawable-hdpi/dizzy.png | Bin 2990 -> 0 bytes app/src/main/res/drawable-hdpi/dizzy_face.png | Bin 6278 -> 0 bytes app/src/main/res/drawable-hdpi/dog.png | Bin 5945 -> 0 bytes app/src/main/res/drawable-hdpi/dog2.png | Bin 5931 -> 0 bytes app/src/main/res/drawable-hdpi/dolphin.png | Bin 4343 -> 0 bytes app/src/main/res/drawable-hdpi/dragon.png | Bin 7749 -> 0 bytes .../main/res/drawable-hdpi/dragon_face.png | Bin 6737 -> 0 bytes .../drawer_menu_icon_blog_nor.png | Bin 575 -> 0 bytes .../drawer_menu_icon_gitapp_nor.png | Bin 996 -> 0 bytes .../drawer_menu_icon_night_nor.png | Bin 2360 -> 0 bytes .../drawer_menu_icon_opensoft_nor.png | Bin 2013 -> 0 bytes .../drawer_menu_icon_quest_nor.png | Bin 1260 -> 0 bytes .../drawer_menu_icon_setting_nor.png | Bin 1600 -> 0 bytes .../res/drawable-hdpi/drawer_shadow.9.png | Bin 161 -> 0 bytes .../res/drawable-hdpi/dromedary_camel.png | Bin 5139 -> 0 bytes app/src/main/res/drawable-hdpi/droplet.png | Bin 3139 -> 0 bytes app/src/main/res/drawable-hdpi/ear.png | Bin 4335 -> 0 bytes .../main/res/drawable-hdpi/ear_of_rice.png | Bin 4758 -> 0 bytes .../main/res/drawable-hdpi/earth_africa.png | Bin 7164 -> 0 bytes .../main/res/drawable-hdpi/earth_americas.png | Bin 7039 -> 0 bytes app/src/main/res/drawable-hdpi/earth_asia.png | Bin 7303 -> 0 bytes app/src/main/res/drawable-hdpi/elephant.png | Bin 5086 -> 0 bytes .../main/res/drawable-hdpi/evergreen_tree.png | Bin 4924 -> 0 bytes .../main/res/drawable-hdpi/exclamation.png | Bin 1175 -> 0 bytes .../main/res/drawable-hdpi/expressionless.png | Bin 4022 -> 0 bytes app/src/main/res/drawable-hdpi/eyes.png | Bin 4367 -> 0 bytes app/src/main/res/drawable-hdpi/facepunch.png | Bin 4833 -> 0 bytes .../main/res/drawable-hdpi/fallen_leaf.png | Bin 4890 -> 0 bytes app/src/main/res/drawable-hdpi/family.png | Bin 7211 -> 0 bytes app/src/main/res/drawable-hdpi/fearful.png | Bin 5600 -> 0 bytes app/src/main/res/drawable-hdpi/feelsgood.png | Bin 1150 -> 0 bytes app/src/main/res/drawable-hdpi/feet.png | Bin 1529 -> 0 bytes app/src/main/res/drawable-hdpi/finnadie.png | Bin 1186 -> 0 bytes app/src/main/res/drawable-hdpi/fire.png | Bin 3886 -> 0 bytes .../res/drawable-hdpi/first_quarter_moon.png | Bin 5967 -> 0 bytes .../first_quarter_moon_with_face.png | Bin 4280 -> 0 bytes app/src/main/res/drawable-hdpi/fish.png | Bin 4721 -> 0 bytes app/src/main/res/drawable-hdpi/fist.png | Bin 5880 -> 0 bytes .../main/res/drawable-hdpi/flash_default.png | Bin 6657 -> 0 bytes app/src/main/res/drawable-hdpi/flash_open.png | Bin 7293 -> 0 bytes app/src/main/res/drawable-hdpi/flushed.png | Bin 5845 -> 0 bytes app/src/main/res/drawable-hdpi/foggy.png | Bin 4623 -> 0 bytes .../res/drawable-hdpi/four_leaf_clover.png | Bin 5995 -> 0 bytes app/src/main/res/drawable-hdpi/frog.png | Bin 4823 -> 0 bytes app/src/main/res/drawable-hdpi/frowning.png | Bin 4733 -> 0 bytes app/src/main/res/drawable-hdpi/fu.png | Bin 4687 -> 0 bytes app/src/main/res/drawable-hdpi/full_moon.png | Bin 6458 -> 0 bytes .../res/drawable-hdpi/full_moon_with_face.png | Bin 7165 -> 0 bytes app/src/main/res/drawable-hdpi/girl.png | Bin 6314 -> 0 bytes .../drawable-hdpi/globe_with_meridians.png | Bin 5837 -> 0 bytes app/src/main/res/drawable-hdpi/goat.png | Bin 4889 -> 0 bytes app/src/main/res/drawable-hdpi/goberserk.png | Bin 1334 -> 0 bytes app/src/main/res/drawable-hdpi/godmode.png | Bin 1042 -> 0 bytes .../main/res/drawable-hdpi/green_heart.png | Bin 4432 -> 0 bytes .../res/drawable-hdpi/grey_exclamation.png | Bin 790 -> 0 bytes .../main/res/drawable-hdpi/grey_question.png | Bin 1057 -> 0 bytes app/src/main/res/drawable-hdpi/grimacing.png | Bin 5327 -> 0 bytes app/src/main/res/drawable-hdpi/grin.png | Bin 5721 -> 0 bytes app/src/main/res/drawable-hdpi/grinning.png | Bin 5550 -> 0 bytes app/src/main/res/drawable-hdpi/guardsman.png | Bin 3587 -> 0 bytes app/src/main/res/drawable-hdpi/haircut.png | Bin 7100 -> 0 bytes app/src/main/res/drawable-hdpi/hamster.png | Bin 7221 -> 0 bytes app/src/main/res/drawable-hdpi/hand.png | Bin 4161 -> 0 bytes app/src/main/res/drawable-hdpi/hankey.png | Bin 4754 -> 0 bytes .../main/res/drawable-hdpi/hatched_chick.png | Bin 5646 -> 0 bytes .../main/res/drawable-hdpi/hatching_chick.png | Bin 5928 -> 0 bytes .../main/res/drawable-hdpi/hear_no_evil.png | Bin 6550 -> 0 bytes app/src/main/res/drawable-hdpi/heart.png | Bin 3302 -> 0 bytes app/src/main/res/drawable-hdpi/heart_eyes.png | Bin 5758 -> 0 bytes .../main/res/drawable-hdpi/heart_eyes_cat.png | Bin 6176 -> 0 bytes app/src/main/res/drawable-hdpi/heartbeat.png | Bin 4052 -> 0 bytes app/src/main/res/drawable-hdpi/heartpulse.png | Bin 6269 -> 0 bytes app/src/main/res/drawable-hdpi/herb.png | Bin 5889 -> 0 bytes app/src/main/res/drawable-hdpi/hibiscus.png | Bin 8322 -> 0 bytes app/src/main/res/drawable-hdpi/honeybee.png | Bin 5851 -> 0 bytes app/src/main/res/drawable-hdpi/horse.png | Bin 4582 -> 0 bytes .../main/res/drawable-hdpi/hurtrealbad.png | Bin 1456 -> 0 bytes app/src/main/res/drawable-hdpi/hushed.png | Bin 4941 -> 0 bytes .../main/res/drawable-hdpi/ic_add_follow.png | Bin 151 -> 0 bytes .../main/res/drawable-hdpi/ic_axis_line.9.png | Bin 82 -> 0 bytes .../main/res/drawable-hdpi/ic_brows_back.png | Bin 2021 -> 0 bytes .../res/drawable-hdpi/ic_brows_forward.png | Bin 1921 -> 0 bytes .../res/drawable-hdpi/ic_brows_refresh.png | Bin 2711 -> 0 bytes .../drawable-hdpi/ic_brows_systembrowser.png | Bin 5465 -> 0 bytes .../drawable-hdpi/ic_clear_image_normal.png | Bin 15012 -> 0 bytes .../drawable-hdpi/ic_clear_image_pressed.png | Bin 15888 -> 0 bytes .../main/res/drawable-hdpi/ic_diary_back.png | Bin 3140 -> 0 bytes .../res/drawable-hdpi/ic_diary_calendar.png | Bin 852 -> 0 bytes .../res/drawable-hdpi/ic_diary_canback.png | Bin 3149 -> 0 bytes .../res/drawable-hdpi/ic_diary_canforward.png | Bin 3157 -> 0 bytes .../res/drawable-hdpi/ic_diary_forward.png | Bin 3149 -> 0 bytes app/src/main/res/drawable-hdpi/ic_drawer.png | Bin 3012 -> 0 bytes .../drawable-hdpi/ic_follow_each_other.png | Bin 245 -> 0 bytes .../main/res/drawable-hdpi/ic_followed.png | Bin 244 -> 0 bytes .../drawable-hdpi/ic_item_goto_right_tip.png | Bin 3005 -> 0 bytes .../main/res/drawable-hdpi/ic_launcher.png | Bin 5221 -> 0 bytes .../main/res/drawable-hdpi/ic_note_delete.png | Bin 528 -> 0 bytes .../res/drawable-hdpi/ic_notification.png | Bin 4871 -> 0 bytes .../res/drawable-hdpi/ic_private_message.png | Bin 270 -> 0 bytes app/src/main/res/drawable-hdpi/ic_share.png | Bin 7157 -> 0 bytes app/src/main/res/drawable-hdpi/ic_week.png | Bin 2031 -> 0 bytes app/src/main/res/drawable-hdpi/icon_call.png | Bin 883 -> 0 bytes .../res/drawable-hdpi/icon_explore_event.png | Bin 1545 -> 0 bytes .../drawable-hdpi/icon_explore_finduser.png | Bin 1787 -> 0 bytes .../drawable-hdpi/icon_explore_friends.png | Bin 1839 -> 0 bytes .../drawable-hdpi/icon_explore_samecity.png | Bin 1355 -> 0 bytes .../res/drawable-hdpi/icon_explore_scan.png | Bin 1326 -> 0 bytes .../res/drawable-hdpi/icon_explore_shake.png | Bin 2037 -> 0 bytes .../main/res/drawable-hdpi/icon_gcoding.png | Bin 4423 -> 0 bytes app/src/main/res/drawable-hdpi/icon_link.png | Bin 745 -> 0 bytes .../main/res/drawable-hdpi/icon_loginout.png | Bin 1964 -> 0 bytes .../main/res/drawable-hdpi/icon_my_blog.png | Bin 2198 -> 0 bytes .../res/drawable-hdpi/icon_my_message.png | Bin 2381 -> 0 bytes .../main/res/drawable-hdpi/icon_my_note.png | Bin 2567 -> 0 bytes .../main/res/drawable-hdpi/icon_my_team.png | Bin 2985 -> 0 bytes .../main/res/drawable-hdpi/icon_pic_menu.png | Bin 1893 -> 0 bytes .../main/res/drawable-hdpi/icon_qr_code.png | Bin 1483 -> 0 bytes .../main/res/drawable-hdpi/icon_record.png | Bin 1641 -> 0 bytes .../main/res/drawable-hdpi/icon_record1.png | Bin 1188 -> 0 bytes .../main/res/drawable-hdpi/icon_record2.png | Bin 1413 -> 0 bytes .../res/drawable-hdpi/icon_record_delete.png | Bin 3278 -> 0 bytes .../drawable-hdpi/icon_record_layout_nor.png | Bin 1360 -> 0 bytes .../drawable-hdpi/icon_record_layout_sel.png | Bin 2920 -> 0 bytes .../res/drawable-hdpi/icon_record_listen.png | Bin 2946 -> 0 bytes .../res/drawable-hdpi/icon_record_play.png | Bin 8090 -> 0 bytes app/src/main/res/drawable-hdpi/icon_up.png | Bin 1445 -> 0 bytes .../drawable-hdpi/image_sliding_block.9.png | Bin 2835 -> 0 bytes app/src/main/res/drawable-hdpi/imp.png | Bin 6621 -> 0 bytes .../drawable-hdpi/information_desk_person.png | Bin 6605 -> 0 bytes app/src/main/res/drawable-hdpi/innocent.png | Bin 7000 -> 0 bytes .../res/drawable-hdpi/japanese_goblin.png | Bin 5159 -> 0 bytes .../main/res/drawable-hdpi/japanese_ogre.png | Bin 7147 -> 0 bytes app/src/main/res/drawable-hdpi/joy.png | Bin 6339 -> 0 bytes app/src/main/res/drawable-hdpi/joy_cat.png | Bin 7190 -> 0 bytes app/src/main/res/drawable-hdpi/kiss.png | Bin 6276 -> 0 bytes app/src/main/res/drawable-hdpi/kissing.png | Bin 4790 -> 0 bytes .../main/res/drawable-hdpi/kissing_cat.png | Bin 6801 -> 0 bytes .../res/drawable-hdpi/kissing_closed_eyes.png | Bin 5563 -> 0 bytes .../main/res/drawable-hdpi/kissing_heart.png | Bin 5767 -> 0 bytes .../drawable-hdpi/kissing_smiling_eyes.png | Bin 4999 -> 0 bytes app/src/main/res/drawable-hdpi/koala.png | Bin 5687 -> 0 bytes .../res/drawable-hdpi/last_quarter_moon.png | Bin 6149 -> 0 bytes .../last_quarter_moon_with_face.png | Bin 4328 -> 0 bytes app/src/main/res/drawable-hdpi/laughing.png | Bin 6347 -> 0 bytes app/src/main/res/drawable-hdpi/leaves.png | Bin 5571 -> 0 bytes app/src/main/res/drawable-hdpi/leopard.png | Bin 5348 -> 0 bytes app/src/main/res/drawable-hdpi/line.9.png | Bin 98 -> 0 bytes app/src/main/res/drawable-hdpi/lips.png | Bin 3738 -> 0 bytes .../main/res/drawable-hdpi/load_img_error.png | Bin 9502 -> 0 bytes .../res/drawable-hdpi/load_img_loading.png | Bin 1795 -> 0 bytes app/src/main/res/drawable-hdpi/loading.png | Bin 394 -> 0 bytes .../main/res/drawable-hdpi/love_letter.png | Bin 2467 -> 0 bytes app/src/main/res/drawable-hdpi/man.png | Bin 6023 -> 0 bytes .../res/drawable-hdpi/man_with_gua_pi_mao.png | Bin 5324 -> 0 bytes .../res/drawable-hdpi/man_with_turban.png | Bin 6528 -> 0 bytes app/src/main/res/drawable-hdpi/maple_leaf.png | Bin 4450 -> 0 bytes app/src/main/res/drawable-hdpi/mask.png | Bin 5235 -> 0 bytes app/src/main/res/drawable-hdpi/massage.png | Bin 6036 -> 0 bytes .../drawable-hdpi/messages_left_bubble.9.png | Bin 760 -> 0 bytes .../messages_left_bubble_highlighted.9.png | Bin 621 -> 0 bytes app/src/main/res/drawable-hdpi/metal.png | Bin 3098 -> 0 bytes app/src/main/res/drawable-hdpi/milky_way.png | Bin 5878 -> 0 bytes app/src/main/res/drawable-hdpi/monkey.png | Bin 4973 -> 0 bytes .../main/res/drawable-hdpi/monkey_face.png | Bin 5348 -> 0 bytes app/src/main/res/drawable-hdpi/moon.png | Bin 3541 -> 0 bytes app/src/main/res/drawable-hdpi/mouse.png | Bin 6625 -> 0 bytes app/src/main/res/drawable-hdpi/mouse2.png | Bin 4087 -> 0 bytes app/src/main/res/drawable-hdpi/muscle.png | Bin 4672 -> 0 bytes app/src/main/res/drawable-hdpi/mushroom.png | Bin 4887 -> 0 bytes .../main/res/drawable-hdpi/musical_note.png | Bin 3188 -> 0 bytes app/src/main/res/drawable-hdpi/nail_care.png | Bin 5814 -> 0 bytes app/src/main/res/drawable-hdpi/neckbeard.png | Bin 6247 -> 0 bytes .../main/res/drawable-hdpi/neutral_face.png | Bin 4843 -> 0 bytes app/src/main/res/drawable-hdpi/new_moon.png | Bin 5276 -> 0 bytes .../res/drawable-hdpi/new_moon_with_face.png | Bin 6708 -> 0 bytes .../night_chat_from_bg_normal.9.png | Bin 709 -> 0 bytes .../night_comment_reply_container_bg.9.png | Bin 1141 -> 0 bytes .../night_image_sliding_block.9.png | Bin 112 -> 0 bytes app/src/main/res/drawable-hdpi/no_good.png | Bin 7034 -> 0 bytes app/src/main/res/drawable-hdpi/no_mouth.png | Bin 4632 -> 0 bytes app/src/main/res/drawable-hdpi/nose.png | Bin 3703 -> 0 bytes app/src/main/res/drawable-hdpi/notes.png | Bin 1536 -> 0 bytes app/src/main/res/drawable-hdpi/ocean.png | Bin 5777 -> 0 bytes app/src/main/res/drawable-hdpi/octocat.png | Bin 3738 -> 0 bytes app/src/main/res/drawable-hdpi/octopus.png | Bin 5779 -> 0 bytes app/src/main/res/drawable-hdpi/ok_hand.png | Bin 4598 -> 0 bytes app/src/main/res/drawable-hdpi/ok_woman.png | Bin 7527 -> 0 bytes app/src/main/res/drawable-hdpi/older_man.png | Bin 6733 -> 0 bytes .../main/res/drawable-hdpi/older_woman.png | Bin 5977 -> 0 bytes app/src/main/res/drawable-hdpi/open_hands.png | Bin 4950 -> 0 bytes app/src/main/res/drawable-hdpi/open_mouth.png | Bin 4519 -> 0 bytes app/src/main/res/drawable-hdpi/ox.png | Bin 5935 -> 0 bytes app/src/main/res/drawable-hdpi/palm_tree.png | Bin 3663 -> 0 bytes app/src/main/res/drawable-hdpi/panda_face.png | Bin 4814 -> 0 bytes .../main/res/drawable-hdpi/partly_sunny.png | Bin 5169 -> 0 bytes app/src/main/res/drawable-hdpi/paw_prints.png | Bin 2471 -> 0 bytes app/src/main/res/drawable-hdpi/penguin.png | Bin 4746 -> 0 bytes app/src/main/res/drawable-hdpi/pensive.png | Bin 5062 -> 0 bytes app/src/main/res/drawable-hdpi/persevere.png | Bin 5519 -> 0 bytes .../res/drawable-hdpi/person_frowning.png | Bin 4826 -> 0 bytes .../drawable-hdpi/person_with_blond_hair.png | Bin 6622 -> 0 bytes .../person_with_pouting_face.png | Bin 5428 -> 0 bytes app/src/main/res/drawable-hdpi/pig.png | Bin 5996 -> 0 bytes app/src/main/res/drawable-hdpi/pig2.png | Bin 4797 -> 0 bytes app/src/main/res/drawable-hdpi/pig_nose.png | Bin 4761 -> 0 bytes app/src/main/res/drawable-hdpi/platform.png | Bin 2949 -> 0 bytes app/src/main/res/drawable-hdpi/plus1.png | Bin 5075 -> 0 bytes app/src/main/res/drawable-hdpi/point_down.png | Bin 3225 -> 0 bytes app/src/main/res/drawable-hdpi/point_left.png | Bin 3085 -> 0 bytes .../main/res/drawable-hdpi/point_right.png | Bin 3079 -> 0 bytes app/src/main/res/drawable-hdpi/point_up.png | Bin 3431 -> 0 bytes app/src/main/res/drawable-hdpi/point_up_2.png | Bin 3181 -> 0 bytes app/src/main/res/drawable-hdpi/poodle.png | Bin 6852 -> 0 bytes app/src/main/res/drawable-hdpi/poop.png | Bin 4754 -> 0 bytes .../main/res/drawable-hdpi/pouting_cat.png | Bin 4918 -> 0 bytes app/src/main/res/drawable-hdpi/pray.png | Bin 6203 -> 0 bytes app/src/main/res/drawable-hdpi/princess.png | Bin 7920 -> 0 bytes app/src/main/res/drawable-hdpi/punch.png | Bin 4833 -> 0 bytes .../main/res/drawable-hdpi/purple_heart.png | Bin 4295 -> 0 bytes app/src/main/res/drawable-hdpi/question.png | Bin 1711 -> 0 bytes .../drawable-hdpi/quick_option_album_nor.png | Bin 4072 -> 0 bytes .../drawable-hdpi/quick_option_album_over.png | Bin 4157 -> 0 bytes .../drawable-hdpi/quick_option_note_nor.png | Bin 3801 -> 0 bytes .../drawable-hdpi/quick_option_note_over.png | Bin 3954 -> 0 bytes .../drawable-hdpi/quick_option_photo_nor.png | Bin 3998 -> 0 bytes .../drawable-hdpi/quick_option_photo_over.png | Bin 4120 -> 0 bytes .../drawable-hdpi/quick_option_scan_nor.png | Bin 3294 -> 0 bytes .../drawable-hdpi/quick_option_scan_over.png | Bin 3309 -> 0 bytes .../drawable-hdpi/quick_option_text_nor.png | Bin 3977 -> 0 bytes .../drawable-hdpi/quick_option_text_over.png | Bin 4006 -> 0 bytes .../drawable-hdpi/quick_option_voice_nor.png | Bin 4084 -> 0 bytes .../drawable-hdpi/quick_option_voice_over.png | Bin 4117 -> 0 bytes app/src/main/res/drawable-hdpi/rabbit.png | Bin 5677 -> 0 bytes app/src/main/res/drawable-hdpi/rabbit2.png | Bin 4425 -> 0 bytes app/src/main/res/drawable-hdpi/racehorse.png | Bin 4735 -> 0 bytes app/src/main/res/drawable-hdpi/rage.png | Bin 5410 -> 0 bytes app/src/main/res/drawable-hdpi/rage1.png | Bin 1086 -> 0 bytes app/src/main/res/drawable-hdpi/rage2.png | Bin 1098 -> 0 bytes app/src/main/res/drawable-hdpi/rage3.png | Bin 1119 -> 0 bytes app/src/main/res/drawable-hdpi/rage4.png | Bin 1270 -> 0 bytes .../main/res/drawable-hdpi/raised_hand.png | Bin 4161 -> 0 bytes .../main/res/drawable-hdpi/raised_hands.png | Bin 5375 -> 0 bytes .../main/res/drawable-hdpi/raising_hand.png | Bin 6177 -> 0 bytes app/src/main/res/drawable-hdpi/ram.png | Bin 6531 -> 0 bytes app/src/main/res/drawable-hdpi/rat.png | Bin 5434 -> 0 bytes app/src/main/res/drawable-hdpi/relaxed.png | Bin 5455 -> 0 bytes app/src/main/res/drawable-hdpi/relieved.png | Bin 5364 -> 0 bytes .../res/drawable-hdpi/revolving_hearts.png | Bin 5472 -> 0 bytes app/src/main/res/drawable-hdpi/rooster.png | Bin 6168 -> 0 bytes app/src/main/res/drawable-hdpi/rose.png | Bin 4202 -> 0 bytes app/src/main/res/drawable-hdpi/runner.png | Bin 3137 -> 0 bytes app/src/main/res/drawable-hdpi/running.png | Bin 3137 -> 0 bytes app/src/main/res/drawable-hdpi/satisfied.png | Bin 6347 -> 0 bytes app/src/main/res/drawable-hdpi/scream.png | Bin 6482 -> 0 bytes app/src/main/res/drawable-hdpi/scream_cat.png | Bin 6844 -> 0 bytes .../main/res/drawable-hdpi/see_no_evil.png | Bin 6828 -> 0 bytes app/src/main/res/drawable-hdpi/seedling.png | Bin 2190 -> 0 bytes app/src/main/res/drawable-hdpi/shaking.png | Bin 9225 -> 0 bytes app/src/main/res/drawable-hdpi/sheep.png | Bin 4732 -> 0 bytes app/src/main/res/drawable-hdpi/shell.png | Bin 5115 -> 0 bytes app/src/main/res/drawable-hdpi/shit.png | Bin 4754 -> 0 bytes app/src/main/res/drawable-hdpi/skull.png | Bin 2428 -> 0 bytes app/src/main/res/drawable-hdpi/sleeping.png | Bin 5409 -> 0 bytes app/src/main/res/drawable-hdpi/sleepy.png | Bin 5837 -> 0 bytes .../sliding_tab_strip_background.9.png | Bin 2862 -> 0 bytes app/src/main/res/drawable-hdpi/smile.png | Bin 5890 -> 0 bytes app/src/main/res/drawable-hdpi/smile_cat.png | Bin 6117 -> 0 bytes app/src/main/res/drawable-hdpi/smiley.png | Bin 5794 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_0.png | Bin 2974 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_1.png | Bin 3005 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_10.png | Bin 2915 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_100.png | Bin 2956 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_101.png | Bin 2423 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_102.png | Bin 3129 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_103.png | Bin 2293 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_104.png | Bin 2477 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_11.png | Bin 3109 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_12.png | Bin 2980 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_13.png | Bin 2908 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_14.png | Bin 2914 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_15.png | Bin 2939 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_16.png | Bin 3061 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_17.png | Bin 3167 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_18.png | Bin 3073 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_19.png | Bin 3232 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_2.png | Bin 2799 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_20.png | Bin 3031 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_21.png | Bin 2871 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_22.png | Bin 2959 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_23.png | Bin 2911 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_24.png | Bin 3001 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_25.png | Bin 2836 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_26.png | Bin 2816 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_27.png | Bin 2834 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_28.png | Bin 3008 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_29.png | Bin 2779 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_3.png | Bin 3224 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_30.png | Bin 3098 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_31.png | Bin 3062 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_32.png | Bin 3020 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_33.png | Bin 3107 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_34.png | Bin 3096 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_35.png | Bin 3394 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_36.png | Bin 1809 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_37.png | Bin 2656 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_38.png | Bin 2709 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_39.png | Bin 2842 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_4.png | Bin 2907 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_40.png | Bin 2954 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_41.png | Bin 3183 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_42.png | Bin 3083 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_43.png | Bin 3077 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_44.png | Bin 2947 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_45.png | Bin 2702 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_46.png | Bin 2703 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_47.png | Bin 2951 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_48.png | Bin 2840 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_49.png | Bin 2826 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_5.png | Bin 2372 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_50.png | Bin 3000 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_51.png | Bin 2936 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_52.png | Bin 2798 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_53.png | Bin 2991 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_54.png | Bin 3234 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_55.png | Bin 1808 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_56.png | Bin 2655 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_57.png | Bin 2667 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_58.png | Bin 3217 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_59.png | Bin 2379 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_6.png | Bin 3057 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_60.png | Bin 2734 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_61.png | Bin 2427 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_62.png | Bin 2649 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_63.png | Bin 1417 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_64.png | Bin 1623 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_65.png | Bin 1745 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_66.png | Bin 1648 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_67.png | Bin 2303 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_68.png | Bin 1904 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_69.png | Bin 1177 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_7.png | Bin 3097 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_70.png | Bin 2222 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_71.png | Bin 1633 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_72.png | Bin 2983 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_73.png | Bin 2247 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_74.png | Bin 2765 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_75.png | Bin 2055 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_76.png | Bin 2528 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_77.png | Bin 1826 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_78.png | Bin 2677 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_79.png | Bin 1939 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_8.png | Bin 2848 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_80.png | Bin 1839 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_81.png | Bin 2532 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_82.png | Bin 2655 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_83.png | Bin 2383 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_84.png | Bin 2458 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_85.png | Bin 2824 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_86.png | Bin 2132 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_87.png | Bin 2507 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_88.png | Bin 2280 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_89.png | Bin 2611 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_9.png | Bin 2926 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_90.png | Bin 2921 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_91.png | Bin 2256 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_92.png | Bin 2284 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_93.png | Bin 2778 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_94.png | Bin 2529 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_95.png | Bin 2537 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_96.png | Bin 2858 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_97.png | Bin 2271 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_98.png | Bin 2357 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_99.png | Bin 2191 -> 0 bytes app/src/main/res/drawable-hdpi/smiley_cat.png | Bin 6083 -> 0 bytes .../main/res/drawable-hdpi/smiling_imp.png | Bin 7189 -> 0 bytes app/src/main/res/drawable-hdpi/smirk.png | Bin 5307 -> 0 bytes app/src/main/res/drawable-hdpi/smirk_cat.png | Bin 6062 -> 0 bytes app/src/main/res/drawable-hdpi/snail.png | Bin 6657 -> 0 bytes app/src/main/res/drawable-hdpi/snake.png | Bin 4069 -> 0 bytes app/src/main/res/drawable-hdpi/snowflake.png | Bin 5637 -> 0 bytes app/src/main/res/drawable-hdpi/snowman.png | Bin 4658 -> 0 bytes app/src/main/res/drawable-hdpi/sob.png | Bin 5709 -> 0 bytes app/src/main/res/drawable-hdpi/sparkles.png | Bin 2209 -> 0 bytes .../res/drawable-hdpi/sparkling_heart.png | Bin 5357 -> 0 bytes .../main/res/drawable-hdpi/speak_no_evil.png | Bin 5977 -> 0 bytes .../main/res/drawable-hdpi/speech_balloon.png | Bin 2130 -> 0 bytes .../drawable-hdpi/spinner_48_inner_holo.png | Bin 2081 -> 0 bytes .../drawable-hdpi/spinner_48_outer_holo.png | Bin 1811 -> 0 bytes app/src/main/res/drawable-hdpi/squirrel.png | Bin 9351 -> 0 bytes app/src/main/res/drawable-hdpi/star.png | Bin 3628 -> 0 bytes app/src/main/res/drawable-hdpi/star2.png | Bin 4068 -> 0 bytes .../res/drawable-hdpi/stuck_out_tongue.png | Bin 5215 -> 0 bytes .../stuck_out_tongue_closed_eyes.png | Bin 5785 -> 0 bytes .../stuck_out_tongue_winking_eye.png | Bin 6007 -> 0 bytes .../main/res/drawable-hdpi/sun_with_face.png | Bin 7958 -> 0 bytes app/src/main/res/drawable-hdpi/sunflower.png | Bin 6567 -> 0 bytes app/src/main/res/drawable-hdpi/sunglasses.png | Bin 5730 -> 0 bytes app/src/main/res/drawable-hdpi/sunny.png | Bin 3802 -> 0 bytes app/src/main/res/drawable-hdpi/suspect.png | Bin 1016 -> 0 bytes app/src/main/res/drawable-hdpi/sweat.png | Bin 5576 -> 0 bytes .../main/res/drawable-hdpi/sweat_drops.png | Bin 4782 -> 0 bytes .../main/res/drawable-hdpi/sweat_smile.png | Bin 6519 -> 0 bytes .../res/drawable-hdpi/textfield_normal.9.png | Bin 180 -> 0 bytes .../drawable-hdpi/textfield_selected.9.png | Bin 230 -> 0 bytes app/src/main/res/drawable-hdpi/the_1.png | Bin 5070 -> 0 bytes .../res/drawable-hdpi/thought_balloon.png | Bin 2521 -> 0 bytes app/src/main/res/drawable-hdpi/thumbsdown.png | Bin 5070 -> 0 bytes app/src/main/res/drawable-hdpi/thumbsup.png | Bin 5075 -> 0 bytes app/src/main/res/drawable-hdpi/tiger.png | Bin 6051 -> 0 bytes app/src/main/res/drawable-hdpi/tiger2.png | Bin 5744 -> 0 bytes .../timeline_card_small_button.9.png | Bin 242 -> 0 bytes ...meline_card_small_button_highlighted.9.png | Bin 223 -> 0 bytes .../timeline_card_small_placeholder.png | Bin 98 -> 0 bytes app/src/main/res/drawable-hdpi/tired_face.png | Bin 6174 -> 0 bytes .../res/drawable-hdpi/toast_background.9.png | Bin 183 -> 0 bytes app/src/main/res/drawable-hdpi/tongue.png | Bin 3662 -> 0 bytes app/src/main/res/drawable-hdpi/triumph.png | Bin 6164 -> 0 bytes app/src/main/res/drawable-hdpi/trollface.png | Bin 4901 -> 0 bytes .../main/res/drawable-hdpi/tropical_fish.png | Bin 5846 -> 0 bytes app/src/main/res/drawable-hdpi/tulip.png | Bin 6065 -> 0 bytes app/src/main/res/drawable-hdpi/turtle.png | Bin 5336 -> 0 bytes app/src/main/res/drawable-hdpi/two_hearts.png | Bin 3565 -> 0 bytes .../drawable-hdpi/two_men_holding_hands.png | Bin 6994 -> 0 bytes .../drawable-hdpi/two_women_holding_hands.png | Bin 7633 -> 0 bytes app/src/main/res/drawable-hdpi/umbrella.png | Bin 4745 -> 0 bytes app/src/main/res/drawable-hdpi/unamused.png | Bin 5315 -> 0 bytes .../main/res/drawable-hdpi/user_center_bg.png | Bin 160081 -> 0 bytes .../drawable-hdpi/userinfo_icon_female.png | Bin 843 -> 0 bytes .../res/drawable-hdpi/userinfo_icon_male.png | Bin 827 -> 0 bytes app/src/main/res/drawable-hdpi/v.png | Bin 4669 -> 0 bytes app/src/main/res/drawable-hdpi/volcano.png | Bin 6167 -> 0 bytes app/src/main/res/drawable-hdpi/walking.png | Bin 2468 -> 0 bytes .../drawable-hdpi/waning_crescent_moon.png | Bin 5885 -> 0 bytes .../res/drawable-hdpi/waning_gibbous_moon.png | Bin 6443 -> 0 bytes .../main/res/drawable-hdpi/water_buffalo.png | Bin 4774 -> 0 bytes app/src/main/res/drawable-hdpi/wave.png | Bin 5046 -> 0 bytes .../drawable-hdpi/waxing_crescent_moon.png | Bin 6198 -> 0 bytes .../res/drawable-hdpi/waxing_gibbous_moon.png | Bin 6357 -> 0 bytes app/src/main/res/drawable-hdpi/weary.png | Bin 6279 -> 0 bytes app/src/main/res/drawable-hdpi/welcome.jpeg | Bin 54029 -> 0 bytes app/src/main/res/drawable-hdpi/whale.png | Bin 4940 -> 0 bytes app/src/main/res/drawable-hdpi/whale2.png | Bin 5944 -> 0 bytes .../drawable-hdpi/widget_bar_explore_nor.png | Bin 2110 -> 0 bytes .../drawable-hdpi/widget_bar_explore_over.png | Bin 1837 -> 0 bytes .../res/drawable-hdpi/widget_bar_me_nor.png | Bin 1842 -> 0 bytes .../res/drawable-hdpi/widget_bar_me_over.png | Bin 1701 -> 0 bytes .../res/drawable-hdpi/widget_bar_news_nor.png | Bin 1211 -> 0 bytes .../drawable-hdpi/widget_bar_news_over.png | Bin 1175 -> 0 bytes .../drawable-hdpi/widget_bar_tweet_nor.png | Bin 1831 -> 0 bytes .../drawable-hdpi/widget_bar_tweet_over.png | Bin 1642 -> 0 bytes .../main/res/drawable-hdpi/widget_dface.png | Bin 16189 -> 0 bytes .../drawable-hdpi/widget_original_icon.png | Bin 1214 -> 0 bytes .../res/drawable-hdpi/widget_repaste_icon.png | Bin 1217 -> 0 bytes .../res/drawable-hdpi/widget_today_icon.png | Bin 1473 -> 0 bytes app/src/main/res/drawable-hdpi/wink.png | Bin 5253 -> 0 bytes app/src/main/res/drawable-hdpi/wolf.png | Bin 4845 -> 0 bytes app/src/main/res/drawable-hdpi/woman.png | Bin 6895 -> 0 bytes app/src/main/res/drawable-hdpi/worried.png | Bin 5152 -> 0 bytes .../main/res/drawable-hdpi/yellow_heart.png | Bin 4414 -> 0 bytes app/src/main/res/drawable-hdpi/yum.png | Bin 5886 -> 0 bytes app/src/main/res/drawable-hdpi/zap.png | Bin 2233 -> 0 bytes app/src/main/res/drawable-hdpi/zzz.png | Bin 2027 -> 0 bytes app/src/main/res/drawable-mdpi/blue.png | Bin 2689 -> 0 bytes .../res/drawable-mdpi/drawer_shadow.9.png | Bin 142 -> 0 bytes app/src/main/res/drawable-mdpi/green.png | Bin 2691 -> 0 bytes app/src/main/res/drawable-mdpi/ic_drawer.png | Bin 152 -> 0 bytes app/src/main/res/drawable-mdpi/icon_color.png | Bin 1954 -> 0 bytes app/src/main/res/drawable-mdpi/icon_save.jpg | Bin 19026 -> 0 bytes app/src/main/res/drawable-mdpi/purple.png | Bin 2589 -> 0 bytes app/src/main/res/drawable-mdpi/red.png | Bin 2617 -> 0 bytes app/src/main/res/drawable-mdpi/yellow.png | Bin 2736 -> 0 bytes .../res/drawable-xhdpi/actionbar_icon_add.png | Bin 370 -> 0 bytes .../actionbar_icon_switch_issue_state.png | Bin 977 -> 0 bytes .../actionbar_more_icon_normal.png | Bin 519 -> 0 bytes .../drawable-xhdpi/actionbar_search_icon.png | Bin 15245 -> 0 bytes .../drawable-xhdpi/actionbar_send_icon.png | Bin 18728 -> 0 bytes .../drawable-xhdpi/actionbar_unsend_icon.png | Bin 1891 -> 0 bytes .../drawable-xhdpi/biz_chat_comment_send.png | Bin 991 -> 0 bytes .../biz_chat_comment_send_prs.png | Bin 625 -> 0 bytes .../drawable-xhdpi/btn_clear_input_normal.png | Bin 3536 -> 0 bytes .../btn_clear_input_pressed.png | Bin 3642 -> 0 bytes app/src/main/res/drawable-xhdpi/btn_del.9.png | Bin 926 -> 0 bytes .../main/res/drawable-xhdpi/btn_del_nor.9.png | Bin 926 -> 0 bytes .../res/drawable-xhdpi/btn_del_press.9.png | Bin 882 -> 0 bytes .../res/drawable-xhdpi/btn_emoji_normal.png | Bin 1242 -> 0 bytes .../res/drawable-xhdpi/btn_emoji_pressed.png | Bin 1244 -> 0 bytes .../btn_opt_text_to_tools_normal.png | Bin 450 -> 0 bytes .../btn_opt_text_to_tools_pressed.png | Bin 766 -> 0 bytes .../btn_opt_tools_to_text_normal.png | Bin 375 -> 0 bytes .../btn_opt_tools_to_text_pressed.png | Bin 733 -> 0 bytes .../drawable-xhdpi/btn_quickoption_nor.png | Bin 3293 -> 0 bytes .../btn_quickoption_pressed.png | Bin 2936 -> 0 bytes .../drawable-xhdpi/btn_quickoption_route.png | Bin 7053 -> 0 bytes .../drawable-xhdpi/chat_from_bg_normal.9.png | Bin 480 -> 0 bytes .../drawable-xhdpi/chat_from_bg_pressed.9.png | Bin 440 -> 0 bytes .../drawable-xhdpi/chat_to_bg_normal.9.png | Bin 489 -> 0 bytes .../drawable-xhdpi/chat_to_bg_pressed.9.png | Bin 501 -> 0 bytes .../comment_edittext_normal.9.png | Bin 425 -> 0 bytes .../comment_edittext_pressed.9.png | Bin 425 -> 0 bytes .../res/drawable-xhdpi/detail_map_guide.png | Bin 5677 -> 0 bytes .../res/drawable-xhdpi/drawer_shadow.9.png | Bin 174 -> 0 bytes .../main/res/drawable-xhdpi/edit_normal.9.png | Bin 1100 -> 0 bytes .../main/res/drawable-xhdpi/edit_select.9.png | Bin 228 -> 0 bytes .../drawable-xhdpi/ic_action_favor_normal.png | Bin 1115 -> 0 bytes .../ic_action_favor_on_normal.png | Bin 816 -> 0 bytes .../ic_action_favor_on_pressed.png | Bin 817 -> 0 bytes .../ic_action_favor_pressed.png | Bin 1131 -> 0 bytes .../ic_action_report_normal.png | Bin 974 -> 0 bytes .../ic_action_report_pressed.png | Bin 978 -> 0 bytes .../ic_action_repost_normal.png | Bin 886 -> 0 bytes .../ic_action_repost_pressed.png | Bin 822 -> 0 bytes .../drawable-xhdpi/ic_action_write_normal.png | Bin 855 -> 0 bytes .../ic_action_write_pressed.png | Bin 857 -> 0 bytes .../res/drawable-xhdpi/ic_brows_share.png | Bin 2991 -> 0 bytes app/src/main/res/drawable-xhdpi/ic_drawer.png | Bin 146 -> 0 bytes .../main/res/drawable-xhdpi/ic_launcher.png | Bin 6719 -> 0 bytes .../main/res/drawable-xhdpi/icon_download.png | Bin 3234 -> 0 bytes .../icon_event_status_attend.png | Bin 2999 -> 0 bytes .../icon_event_status_checked.png | Bin 2869 -> 0 bytes .../drawable-xhdpi/icon_event_status_over.png | Bin 3037 -> 0 bytes .../res/drawable-xhdpi/notification_bg.9.png | Bin 400 -> 0 bytes .../res/drawable-xhdpi/page_icon_empty.png | Bin 19871 -> 0 bytes .../res/drawable-xhdpi/page_icon_network.png | Bin 6017 -> 0 bytes .../main/res/drawable-xhdpi/pagefailed_bg.png | Bin 4843 -> 0 bytes .../main/res/drawable-xhdpi/qr_capture.9.png | Bin 997 -> 0 bytes .../main/res/drawable-xhdpi/qr_scan_line.png | Bin 7776 -> 0 bytes .../main/res/drawable-xhdpi/qr_scan_mask.png | Bin 2940 -> 0 bytes .../drawable-xhdpi/review_toolbar_normal.png | Bin 445 -> 0 bytes .../drawable-xhdpi/review_toolbar_pressed.png | Bin 445 -> 0 bytes .../main/res/drawable-xhdpi/search_icon.png | Bin 1561 -> 0 bytes .../res/drawable-xhdpi/share_icon_copy.png | Bin 3419 -> 0 bytes .../res/drawable-xhdpi/share_icon_copy_a.png | Bin 3501 -> 0 bytes .../res/drawable-xhdpi/share_icon_more.png | Bin 2404 -> 0 bytes .../res/drawable-xhdpi/share_icon_more_a.png | Bin 2411 -> 0 bytes .../main/res/drawable-xhdpi/share_icon_qq.png | Bin 2862 -> 0 bytes .../res/drawable-xhdpi/share_icon_qq_a.png | Bin 2894 -> 0 bytes .../drawable-xhdpi/share_icon_sinaweibo.png | Bin 3441 -> 0 bytes .../drawable-xhdpi/share_icon_sinaweibo_a.png | Bin 3663 -> 0 bytes .../res/drawable-xhdpi/share_icon_wechat.png | Bin 3258 -> 0 bytes .../drawable-xhdpi/share_icon_wechat_a.png | Bin 3299 -> 0 bytes .../share_icon_wechatfriends.png | Bin 3716 -> 0 bytes .../share_icon_wechatfriends_a.png | Bin 3760 -> 0 bytes .../spinner_ab_default_holo_dark_am.9.png | Bin 1547 -> 0 bytes .../res/drawable-xhdpi/widget_today_icon.png | Bin 1473 -> 0 bytes .../res/drawable-xxhdpi/drawer_shadow.9.png | Bin 208 -> 0 bytes .../res/drawable-xxhdpi/ic_brows_refresh.png | Bin 2711 -> 0 bytes .../main/res/drawable-xxhdpi/ic_drawer.png | Bin 162 -> 0 bytes .../main/res/drawable-xxhdpi/ic_launcher.png | Bin 9784 -> 0 bytes .../drawable-xxhdpi/icon_actionbar_home.png | Bin 2733 -> 0 bytes .../drawable/actionbar_green_btn_normal.xml | 19 - .../drawable/actionbar_green_btn_pressed.xml | 30 - .../drawable/actionbar_green_btn_selector.xml | 14 - app/src/main/res/drawable/bg_edittext.xml | 9 - app/src/main/res/drawable/bg_notebook.xml | 14 - .../main/res/drawable/bg_record_button.xml | 14 - .../main/res/drawable/btn_blue_selector.xml | 7 - .../res/drawable/btn_clear_input_selector.xml | 7 - .../main/res/drawable/btn_del_selector.xml | 7 - .../main/res/drawable/btn_emoji_selector.xml | 7 - .../main/res/drawable/btn_green_selector.xml | 7 - .../drawable/btn_item_opt_more_selector.xml | 7 - .../btn_opt_text_to_tools_selector.xml | 7 - .../btn_opt_tools_to_text_selector.xml | 7 - .../main/res/drawable/btn_oval_background.xml | 12 - .../res/drawable/btn_quickoption_selector.xml | 7 - .../main/res/drawable/btn_radio_selector.xml | 59 - .../drawable/btn_send_comment_selector.xml | 7 - .../res/drawable/btn_small_green_selector.xml | 7 - .../res/drawable/btn_small_white_selector.xml | 7 - .../main/res/drawable/btn_white_selector.xml | 7 - .../res/drawable/chat_from_bg_selector.xml | 6 - .../main/res/drawable/chat_to_bg_selector.xml | 6 - .../main/res/drawable/comment_background.xml | 10 - .../drawable/comment_edittext_selector.xml | 8 - .../res/drawable/compose_clear_selector.xml | 7 - .../compose_toolbar_emoji_selector.xml | 7 - .../compose_toolbar_keyboard_selector.xml | 7 - .../compose_toolbar_mention_selector.xml | 7 - .../compose_toolbar_picture_selector.xml | 7 - .../compose_toolbar_trend_selector.xml | 7 - .../res/drawable/day_list_item_background.xml | 8 - .../day_quickoption_icon_album_selector.xml | 6 - .../day_quickoption_icon_note_selector.xml | 6 - .../day_quickoption_icon_photo_selector.xml | 6 - .../day_quickoption_icon_scan_selector.xml | 6 - .../day_quickoption_icon_text_selector.xml | 6 - .../day_quickoption_icon_voice_selector.xml | 6 - .../dialog_list_cell_single_choice.xml | 13 - .../drawable/drawer_menu_item_background.xml | 9 - .../res/drawable/ib_clear_image_selector.xml | 7 - .../main/res/drawable/ic_action_comment.xml | 6 - app/src/main/res/drawable/ic_action_favor.xml | 8 - .../main/res/drawable/ic_action_report.xml | 6 - .../main/res/drawable/ic_action_repost.xml | 6 - app/src/main/res/drawable/ic_action_write.xml | 6 - .../drawable/index_float_text_background.xml | 16 - .../messages_left_bubble_selector.xml | 7 - .../my_infomation_option_item_background.xml | 8 - .../drawable/night_list_item_background.xml | 8 - .../night_quickoption_icon_album_selector.xml | 6 - .../night_quickoption_icon_note_selector.xml | 6 - .../night_quickoption_icon_photo_selector.xml | 6 - .../night_quickoption_icon_scan_selector.xml | 6 - .../night_quickoption_icon_text_selector.xml | 6 - .../night_quickoption_icon_voice_selector.xml | 6 - app/src/main/res/drawable/pic_bg.xml | 8 - .../res/drawable/progress_medium_holo.xml | 34 - app/src/main/res/drawable/progressloading.xml | 33 - .../main/res/drawable/selector_keyboard.xml | 5 - .../res/drawable/selector_record_layout.xml | 7 - app/src/main/res/drawable/selector_send.xml | 5 - .../share_icon_copy_link_selector.xml | 6 - .../res/drawable/share_icon_more_selector.xml | 6 - .../res/drawable/share_icon_qq_selector.xml | 6 - .../share_icon_sinaweibo_selector.xml | 6 - .../drawable/share_icon_wechat_selector.xml | 6 - .../share_icon_wechatfriends_selector.xml | 6 - ...lize_titlebar_item_background_selector.xml | 7 - .../main/res/drawable/tab_icon_explore.xml | 8 - app/src/main/res/drawable/tab_icon_me.xml | 8 - app/src/main/res/drawable/tab_icon_new.xml | 8 - app/src/main/res/drawable/tab_icon_tweet.xml | 8 - .../main/res/drawable/team_issue_tag_bg.xml | 18 - .../res/drawable/teamlist_item_background.xml | 9 - .../main/res/drawable/textfield_selector.xml | 8 - app/src/main/res/drawable/touch_clear_bg.xml | 6 - .../layout/actionbar_green_button_layout.xml | 17 - .../layout/activity_account_bind_openid.xml | 31 - app/src/main/res/layout/activity_detail.xml | 29 - .../res/layout/activity_image_preview.xml | 37 - app/src/main/res/layout/activity_login.xml | 71 -- .../res/layout/activity_login_bind_choose.xml | 43 - app/src/main/res/layout/activity_main.xml | 64 - app/src/main/res/layout/activity_qr_scan.xml | 104 -- .../res/layout/activity_select_friends.xml | 148 --- app/src/main/res/layout/activity_shake.xml | 33 - .../res/layout/activity_simple_fragment.xml | 19 - .../res/layout/activity_team_active_pub.xml | 121 -- .../main/res/layout/activity_team_main.xml | 23 - .../res/layout/activity_team_main_menu.xml | 59 - .../res/layout/activity_team_new_issue.xml | 145 --- app/src/main/res/layout/activity_toolbar.xml | 6 - .../main/res/layout/activity_tweet_pub.xml | 13 - .../main/res/layout/activity_weixin_entry.xml | 8 - .../main/res/layout/app_network_interrupt.xml | 14 - app/src/main/res/layout/app_start.xml | 10 - .../res/layout/base_viewpage_fragment.xml | 36 - .../base_viewpage_fragment_tab_item.xml | 29 - .../main/res/layout/date_picker_dialog.xml | 10 - .../res/layout/date_picker_done_button.xml | 18 - .../res/layout/date_picker_header_view.xml | 3 - .../res/layout/date_picker_selected_date.xml | 54 - .../res/layout/date_picker_view_animator.xml | 3 - app/src/main/res/layout/dialog_common.xml | 49 - .../main/res/layout/dialog_cotent_share.xml | 81 -- .../main/res/layout/dialog_event_apply.xml | 79 -- app/src/main/res/layout/dialog_image_menu.xml | 41 - app/src/main/res/layout/dialog_my_qr_code.xml | 44 - .../main/res/layout/dialog_quick_option.xml | 126 -- app/src/main/res/layout/dialog_record.xml | 15 - app/src/main/res/layout/dialog_report.xml | 69 -- app/src/main/res/layout/dialog_wait.xml | 28 - .../res/layout/download_notification_show.xml | 33 - app/src/main/res/layout/emoji_bottom.xml | 41 - app/src/main/res/layout/emoji_content.xml | 14 - app/src/main/res/layout/emoji_title.xml | 61 - app/src/main/res/layout/emoji_toolbar.xml | 14 - .../main/res/layout/event_spot_pupwindow.xml | 27 - .../main/res/layout/frag_dynamic_detail.xml | 49 - app/src/main/res/layout/frag_keyboard.xml | 11 - app/src/main/res/layout/frag_main.xml | 30 - app/src/main/res/layout/fragment_about.xml | 153 --- app/src/main/res/layout/fragment_browser.xml | 61 - .../res/layout/fragment_detail_tool_bar.xml | 102 -- app/src/main/res/layout/fragment_emoji.xml | 81 -- .../main/res/layout/fragment_event_detail.xml | 141 --- .../res/layout/fragment_event_location.xml | 13 - app/src/main/res/layout/fragment_explore.xml | 135 -- app/src/main/res/layout/fragment_feedback.xml | 67 - .../main/res/layout/fragment_find_user.xml | 22 - .../res/layout/fragment_my_information.xml | 102 -- .../layout/fragment_my_information_detail.xml | 68 - .../layout/fragment_my_information_head.xml | 157 --- .../res/layout/fragment_navigation_drawer.xml | 18 - .../fragment_navigation_drawer_foot.xml | 48 - .../fragment_navigation_drawer_items.xml | 77 -- .../main/res/layout/fragment_news_detail.xml | 82 -- app/src/main/res/layout/fragment_note.xml | 38 - .../main/res/layout/fragment_note_detail.xml | 59 - .../main/res/layout/fragment_opensoftware.xml | 45 - .../layout/fragment_pull_refresh_listview.xml | 32 - app/src/main/res/layout/fragment_settings.xml | 147 --- .../layout/fragment_settings_notifcation.xml | 109 -- .../main/res/layout/fragment_team_board.xml | 274 ----- .../res/layout/fragment_team_diary_detail.xml | 15 - .../res/layout/fragment_team_diarypager.xml | 60 - .../layout/fragment_team_discuss_detail.xml | 6 - .../main/res/layout/fragment_team_dynamic.xml | 13 - .../res/layout/fragment_team_issue_detail.xml | 285 ----- .../main/res/layout/fragment_team_member.xml | 27 - .../res/layout/fragment_team_selectteam.xml | 12 - .../res/layout/fragment_team_userinfo.xml | 12 - .../layout/fragment_team_userinfo_head.xml | 57 - .../main/res/layout/fragment_tweet_pub.xml | 122 -- .../main/res/layout/fragment_user_center.xml | 22 - .../layout/fragment_user_center_header.xml | 209 ---- .../fragment_user_center_information.xml | 128 -- .../main/res/layout/image_preview_item.xml | 24 - app/src/main/res/layout/item_notebook.xml | 62 - .../res/layout/item_team_diarydetail_head.xml | 54 - app/src/main/res/layout/item_team_member.xml | 39 - app/src/main/res/layout/item_team_select.xml | 16 - .../res/layout/item_team_tweet_detail.xml | 77 -- .../main/res/layout/item_tweet_pub_record.xml | 73 -- .../res/layout/layout_note_detail_menu.xml | 65 - app/src/main/res/layout/list_cell_active.xml | 138 --- app/src/main/res/layout/list_cell_apply.xml | 47 - .../main/res/layout/list_cell_chat_from.xml | 108 -- app/src/main/res/layout/list_cell_chat_to.xml | 107 -- app/src/main/res/layout/list_cell_comment.xml | 69 -- app/src/main/res/layout/list_cell_dialog.xml | 46 - .../res/layout/list_cell_diary_detail.xml | 40 - .../main/res/layout/list_cell_emoji_item.xml | 17 - app/src/main/res/layout/list_cell_event.xml | 56 - .../main/res/layout/list_cell_favorite.xml | 17 - app/src/main/res/layout/list_cell_footer.xml | 26 - app/src/main/res/layout/list_cell_friend.xml | 57 - app/src/main/res/layout/list_cell_message.xml | 85 -- app/src/main/res/layout/list_cell_news.xml | 73 -- .../main/res/layout/list_cell_popup_menu.xml | 11 - app/src/main/res/layout/list_cell_post.xml | 68 - .../main/res/layout/list_cell_reply_count.xml | 8 - .../layout/list_cell_reply_name_content.xml | 24 - .../res/layout/list_cell_select_friend.xml | 35 - .../res/layout/list_cell_shake_result.xml | 69 -- .../main/res/layout/list_cell_software.xml | 26 - .../res/layout/list_cell_softwarecatalog.xml | 27 - app/src/main/res/layout/list_cell_team.xml | 21 - .../main/res/layout/list_cell_team_active.xml | 117 -- .../res/layout/list_cell_team_child_issue.xml | 33 - .../main/res/layout/list_cell_team_diary.xml | 78 -- .../res/layout/list_cell_team_discuss.xml | 90 -- .../main/res/layout/list_cell_team_issue.xml | 155 --- .../layout/list_cell_team_issue_catalog.xml | 35 - .../res/layout/list_cell_team_project.xml | 36 - .../layout/list_cell_team_project_member.xml | 22 - .../main/res/layout/list_cell_team_reply.xml | 66 - .../layout/list_cell_team_reply_refers.xml | 49 - app/src/main/res/layout/list_cell_tweet.xml | 126 -- .../main/res/layout/list_cell_tweet_like.xml | 80 -- .../res/layout/list_cell_tweet_like_user.xml | 23 - .../main/res/layout/list_head_commnt_line.xml | 51 - .../res/layout/list_header_tweet_detail.xml | 123 -- app/src/main/res/layout/list_index_header.xml | 15 - app/src/main/res/layout/pager_emoji.xml | 10 - app/src/main/res/layout/pager_item_diary.xml | 26 - .../popup_window_team_projects_select.xml | 18 - app/src/main/res/layout/record_view.xml | 107 -- .../main/res/layout/spinner_layout_head.xml | 14 - app/src/main/res/layout/tab_indicator.xml | 28 - app/src/main/res/layout/team_issue_lable.xml | 12 - app/src/main/res/layout/view_base_toast.xml | 56 - .../main/res/layout/view_dialog_header.xml | 48 - app/src/main/res/layout/view_error_layout.xml | 51 - app/src/main/res/layout/view_toast.xml | 35 - .../main/res/layout/year_label_text_view.xml | 3 - app/src/main/res/menu/browser_menu.xml | 12 - app/src/main/res/menu/chat_menu.xml | 11 - app/src/main/res/menu/common_detail_menu.xml | 17 - app/src/main/res/menu/main_activity_menu.xml | 12 - app/src/main/res/menu/notebook_edit_menu.xml | 12 - app/src/main/res/menu/notebook_menu.xml | 12 - .../res/menu/pub_new_team_active_menu.xml | 12 - app/src/main/res/menu/pub_topic_menu.xml | 12 - app/src/main/res/menu/pub_tweet_menu.xml | 12 - app/src/main/res/menu/refresh_menu.xml | 12 - app/src/main/res/menu/search_menu.xml | 12 - app/src/main/res/menu/submit_menu.xml | 12 - .../main/res/menu/team_issue_catalog_menu.xml | 11 - .../main/res/menu/team_issue_detail_menu.xml | 20 - app/src/main/res/menu/team_issue_menu.xml | 18 - app/src/main/res/menu/team_main_menu.xml | 15 - app/src/main/res/menu/team_new_issue_menu.xml | 12 - app/src/main/res/menu/team_project_menu.xml | 11 - app/src/main/res/raw/notificationsound.wav | Bin 55168 -> 0 bytes app/src/main/res/raw/qr_sacn.mp3 | Bin 1668 -> 0 bytes app/src/main/res/values-w820dp/dimens.xml | 10 - app/src/main/res/values/arrays.xml | 101 -- app/src/main/res/values/attrs.xml | 14 - app/src/main/res/values/colors.xml | 93 -- app/src/main/res/values/dimens.xml | 157 --- app/src/main/res/values/emoji_arrays.xml | 118 -- .../main/res/values/font_awsome_string.xml | 34 - app/src/main/res/values/ids.xml | 12 - app/src/main/res/values/layout_style.xml | 140 --- app/src/main/res/values/strings.xml | 314 ----- app/src/main/res/values/styles.xml | 584 --------- app/src/main/res/values/team_arrays.xml | 30 - app/src/main/res/values/team_string.xml | 23 - app/src/main/res/values/theme.xml | 72 -- app/src/main/res/values/theme_attrs.xml | 22 - app/src/main/res/values/theme_color.xml | 28 - .../main/res/values/toggle_button_attrs.xml | 15 - build.gradle | 19 - gradle.properties | 20 - gradle/wrapper/gradle-wrapper.jar | Bin 49896 -> 0 bytes gradle/wrapper/gradle-wrapper.properties | 6 - gradlew | 164 --- gradlew.bat | 90 -- settings.gradle | 2 - social_sdk_library_project/build.gradle | 23 - .../libs/SocialSDK_QQZone_1.jar | Bin 76732 -> 0 bytes .../libs/SocialSDK_QQZone_2.jar | Bin 235072 -> 0 bytes .../libs/SocialSDK_QQZone_3.jar | Bin 47964 -> 0 bytes .../libs/SocialSDK_Sina.jar | Bin 9988 -> 0 bytes .../libs/SocialSDK_WeiXin_1.jar | Bin 149240 -> 0 bytes .../libs/SocialSDK_WeiXin_2.jar | Bin 30045 -> 0 bytes .../libs/SocialSDK_actionbarview.jar | Bin 25928 -> 0 bytes .../libs/SocialSDK_flickr.jar | Bin 6176 -> 0 bytes .../libs/SocialSDK_scrshot.jar | Bin 11956 -> 0 bytes .../libs/SocialSDK_tencentWB_1.jar | Bin 51034 -> 0 bytes .../libs/SocialSDK_tencentWB_2.jar | Bin 105910 -> 0 bytes .../libs/SocialSDK_tencentWB_3.jar | Bin 3906 -> 0 bytes .../libs/SocialSDK_tumblr.jar | Bin 6353 -> 0 bytes .../libs/bolts-android-1.1.4.jar | Bin 47225 -> 0 bytes .../libs/httpmime-4.1.3.jar | Bin 26938 -> 0 bytes .../libs/umeng_social_sdk.jar | Bin 383734 -> 0 bytes .../src/main/AndroidManifest.xml | 13 - .../anim/shake_umeng_socialize_cycle_5.xml | 3 - .../anim/shake_umeng_socialize_dlg_alpha.xml | 19 - .../anim/shake_umeng_socialize_dlg_scale.xml | 15 - .../anim/shake_umeng_socialize_edit_anim.xml | 6 - ...shake_umeng_socialize_imageview_rotate.xml | 32 - .../shake_umeng_socialize_scrshot_dlg.xml | 13 - .../main/res/anim/umeng_socialize_fade_in.xml | 10 - .../res/anim/umeng_socialize_fade_out.xml | 10 - ...meng_socialize_shareboard_animation_in.xml | 17 - ...eng_socialize_shareboard_animation_out.xml | 8 - .../umeng_socialize_slide_in_from_bottom.xml | 7 - .../umeng_socialize_slide_out_from_bottom.xml | 7 - .../com_facebook_button_icon.png | Bin 198 -> 0 bytes ...com_facebook_button_like_icon_selected.png | Bin 187 -> 0 bytes .../com_facebook_button_send_icon.png | Bin 478 -> 0 bytes .../res/drawable-hdpi/com_facebook_close.png | Bin 1592 -> 0 bytes ...om_facebook_tooltip_black_background.9.png | Bin 1645 -> 0 bytes .../com_facebook_tooltip_black_bottomnub.png | Bin 657 -> 0 bytes .../com_facebook_tooltip_black_topnub.png | Bin 513 -> 0 bytes .../com_facebook_tooltip_black_xout.png | Bin 228 -> 0 bytes ...com_facebook_tooltip_blue_background.9.png | Bin 2207 -> 0 bytes .../com_facebook_tooltip_blue_bottomnub.png | Bin 785 -> 0 bytes .../com_facebook_tooltip_blue_topnub.png | Bin 607 -> 0 bytes .../com_facebook_tooltip_blue_xout.png | Bin 228 -> 0 bytes .../messenger_bubble_large_blue.png | Bin 1059 -> 0 bytes .../messenger_bubble_large_white.png | Bin 785 -> 0 bytes .../messenger_bubble_small_blue.png | Bin 918 -> 0 bytes .../messenger_bubble_small_white.png | Bin 700 -> 0 bytes .../messenger_button_send_round_shadow.png | Bin 3404 -> 0 bytes .../umeng_socialize_light_bar_bg_pad.9.png | Bin 508 -> 0 bytes .../umeng_socialize_nav_bar_bg_pad.9.png | Bin 548 -> 0 bytes .../umeng_socialize_oauth_check_off.png | Bin 134 -> 0 bytes .../umeng_socialize_oauth_check_on.png | Bin 403 -> 0 bytes .../umeng_socialize_share_music.png | Bin 1771 -> 0 bytes .../umeng_socialize_share_pic.png | Bin 1562 -> 0 bytes .../umeng_socialize_share_video.png | Bin 2062 -> 0 bytes .../com_facebook_button_icon.png | Bin 173 -> 0 bytes ...com_facebook_button_like_icon_selected.png | Bin 163 -> 0 bytes .../com_facebook_button_send_icon.png | Bin 346 -> 0 bytes .../res/drawable-mdpi/com_facebook_close.png | Bin 1470 -> 0 bytes ...acebook_profile_picture_blank_portrait.png | Bin 1568 -> 0 bytes ..._facebook_profile_picture_blank_square.png | Bin 1482 -> 0 bytes ...om_facebook_tooltip_black_background.9.png | Bin 1128 -> 0 bytes .../com_facebook_tooltip_black_bottomnub.png | Bin 402 -> 0 bytes .../com_facebook_tooltip_black_topnub.png | Bin 264 -> 0 bytes .../com_facebook_tooltip_black_xout.png | Bin 193 -> 0 bytes ...com_facebook_tooltip_blue_background.9.png | Bin 1336 -> 0 bytes .../com_facebook_tooltip_blue_bottomnub.png | Bin 438 -> 0 bytes .../com_facebook_tooltip_blue_topnub.png | Bin 338 -> 0 bytes .../com_facebook_tooltip_blue_xout.png | Bin 193 -> 0 bytes .../messenger_bubble_large_blue.png | Bin 700 -> 0 bytes .../messenger_bubble_large_white.png | Bin 512 -> 0 bytes .../messenger_bubble_small_blue.png | Bin 644 -> 0 bytes .../messenger_bubble_small_white.png | Bin 473 -> 0 bytes .../messenger_button_send_round_shadow.png | Bin 1751 -> 0 bytes .../com_facebook_button_icon.png | Bin 231 -> 0 bytes ...com_facebook_button_like_icon_selected.png | Bin 205 -> 0 bytes .../com_facebook_button_send_icon.png | Bin 645 -> 0 bytes .../res/drawable-xhdpi/com_facebook_close.png | Bin 1974 -> 0 bytes ...om_facebook_tooltip_black_background.9.png | Bin 2628 -> 0 bytes .../com_facebook_tooltip_black_bottomnub.png | Bin 776 -> 0 bytes .../com_facebook_tooltip_black_topnub.png | Bin 589 -> 0 bytes .../com_facebook_tooltip_black_xout.png | Bin 210 -> 0 bytes ...com_facebook_tooltip_blue_background.9.png | Bin 3350 -> 0 bytes .../com_facebook_tooltip_blue_bottomnub.png | Bin 977 -> 0 bytes .../com_facebook_tooltip_blue_topnub.png | Bin 720 -> 0 bytes .../com_facebook_tooltip_blue_xout.png | Bin 226 -> 0 bytes .../messenger_bubble_large_blue.png | Bin 1499 -> 0 bytes .../messenger_bubble_large_white.png | Bin 1178 -> 0 bytes .../messenger_bubble_small_blue.png | Bin 1257 -> 0 bytes .../messenger_bubble_small_white.png | Bin 966 -> 0 bytes .../messenger_button_send_round_shadow.png | Bin 5367 -> 0 bytes .../umeng_socialize_switchimage_choose.png | Bin 839 -> 0 bytes .../umeng_socialize_switchimage_unchoose.png | Bin 689 -> 0 bytes .../com_facebook_button_icon.png | Bin 284 -> 0 bytes ...com_facebook_button_like_icon_selected.png | Bin 256 -> 0 bytes .../com_facebook_button_send_icon.png | Bin 1002 -> 0 bytes .../messenger_bubble_large_blue.png | Bin 2197 -> 0 bytes .../messenger_bubble_large_white.png | Bin 1764 -> 0 bytes .../messenger_bubble_small_blue.png | Bin 1895 -> 0 bytes .../messenger_bubble_small_white.png | Bin 1513 -> 0 bytes .../messenger_button_send_round_shadow.png | Bin 8993 -> 0 bytes .../src/main/res/drawable/btn_red.xml | 9 - .../src/main/res/drawable/btn_red_normal.xml | 5 - .../src/main/res/drawable/btn_red_pressed.xml | 6 - .../src/main/res/drawable/btn_red_unable.xml | 6 - .../com_facebook_button_background.xml | 41 - .../com_facebook_button_like_background.xml | 47 - ...acebook_button_login_silver_background.xml | 41 - .../com_facebook_button_send_background.xml | 41 - .../messenger_button_blue_bg_round.xml | 56 - .../messenger_button_blue_bg_selector.xml | 36 - .../messenger_button_white_bg_round.xml | 56 - .../messenger_button_white_bg_selector.xml | 36 - .../drawable/shake_umeng_socialize_close.png | Bin 1314 -> 0 bytes ...ake_umeng_socialize_close_button_style.xml | 5 - .../shake_umeng_socialize_close_pressed.png | Bin 1364 -> 0 bytes .../shake_umeng_socialize_edittext_corner.xml | 12 - .../shake_umeng_socialize_imgview_border.xml | 8 - ...g_socialize_preview_edit_corners_style.xml | 7 - ...ke_umeng_socialize_shake_layout_corner.xml | 10 - .../shake_umeng_socialize_share_btn_style.xml | 22 - .../drawable/umeng_socialize_action_back.xml | 8 - .../umeng_socialize_action_back_normal.png | Bin 3307 -> 0 bytes .../umeng_socialize_action_back_selected.png | Bin 1326 -> 0 bytes .../drawable/umeng_socialize_action_like.png | Bin 29680 -> 0 bytes .../umeng_socialize_action_personal_icon.xml | 8 - ...umeng_socialize_action_personal_normal.png | Bin 29629 -> 0 bytes ...eng_socialize_action_personal_selected.png | Bin 29630 -> 0 bytes .../umeng_socialize_action_share_icon.xml | 8 - .../umeng_socialize_action_share_normal.png | Bin 29759 -> 0 bytes .../umeng_socialize_action_share_selected.png | Bin 29759 -> 0 bytes .../umeng_socialize_action_unlike.png | Bin 29680 -> 0 bytes .../umeng_socialize_actionbar_bg.9.png | Bin 346 -> 0 bytes .../drawable/umeng_socialize_at_button.xml | 8 - .../drawable/umeng_socialize_at_normal.png | Bin 886 -> 0 bytes .../drawable/umeng_socialize_at_selected.png | Bin 888 -> 0 bytes .../drawable/umeng_socialize_bind_bg.9.png | Bin 344 -> 0 bytes .../umeng_socialize_button_blue.9.png | Bin 1490 -> 0 bytes .../umeng_socialize_button_grey.9.png | Bin 1520 -> 0 bytes .../umeng_socialize_button_grey_blue.xml | 8 - .../drawable/umeng_socialize_button_login.xml | 8 - .../umeng_socialize_button_login_normal.png | Bin 197 -> 0 bytes .../umeng_socialize_button_login_pressed.png | Bin 197 -> 0 bytes .../drawable/umeng_socialize_button_red.9.png | Bin 1588 -> 0 bytes .../umeng_socialize_button_red_blue.xml | 8 - .../umeng_socialize_button_white.9.png | Bin 1506 -> 0 bytes .../umeng_socialize_button_white_blue.xml | 8 - .../res/drawable/umeng_socialize_checked.png | Bin 671 -> 0 bytes .../drawable/umeng_socialize_comment_bg.png | Bin 250 -> 0 bytes .../drawable/umeng_socialize_comment_icon.xml | 8 - .../umeng_socialize_comment_item_bg_shape.xml | 8 - .../umeng_socialize_comment_normal.png | Bin 29599 -> 0 bytes .../umeng_socialize_comment_selected.png | Bin 29589 -> 0 bytes .../umeng_socialize_commnet_header_bg.xml | 8 - .../umeng_socialize_default_avatar.png | Bin 2438 -> 0 bytes .../drawable/umeng_socialize_divider_line.png | Bin 2414 -> 0 bytes .../drawable/umeng_socialize_douban_off.png | Bin 1377 -> 0 bytes .../drawable/umeng_socialize_douban_on.png | Bin 15807 -> 0 bytes .../res/drawable/umeng_socialize_evernote.png | Bin 2041 -> 0 bytes .../umeng_socialize_evernote_gray.png | Bin 2041 -> 0 bytes .../res/drawable/umeng_socialize_facebook.png | Bin 15671 -> 0 bytes .../umeng_socialize_facebook_close.png | Bin 4401 -> 0 bytes .../drawable/umeng_socialize_facebook_off.png | Bin 1251 -> 0 bytes .../drawable/umeng_socialize_fetch_image.png | Bin 4812 -> 0 bytes ...meng_socialize_fetch_location_disabled.png | Bin 3844 -> 0 bytes .../res/drawable/umeng_socialize_flickr.png | Bin 1462 -> 0 bytes .../drawable/umeng_socialize_flickr_gray.png | Bin 1451 -> 0 bytes .../drawable/umeng_socialize_follow_check.xml | 7 - .../drawable/umeng_socialize_follow_off.png | Bin 1108 -> 0 bytes .../drawable/umeng_socialize_follow_on.png | Bin 1111 -> 0 bytes .../drawable/umeng_socialize_gmail_off.png | Bin 1678 -> 0 bytes .../res/drawable/umeng_socialize_gmail_on.png | Bin 1672 -> 0 bytes .../res/drawable/umeng_socialize_google.png | Bin 1978 -> 0 bytes .../umeng_socialize_instagram_off.png | Bin 841 -> 0 bytes .../drawable/umeng_socialize_instagram_on.png | Bin 846 -> 0 bytes .../res/drawable/umeng_socialize_kakao.png | Bin 2275 -> 0 bytes .../drawable/umeng_socialize_kakao_gray.png | Bin 2291 -> 0 bytes .../res/drawable/umeng_socialize_laiwang.png | Bin 2155 -> 0 bytes .../umeng_socialize_laiwang_dynamic.png | Bin 1643 -> 0 bytes .../umeng_socialize_laiwang_dynamic_gray.png | Bin 1650 -> 0 bytes .../drawable/umeng_socialize_laiwang_gray.png | Bin 2174 -> 0 bytes .../umeng_socialize_light_bar_bg.9.png | Bin 345 -> 0 bytes .../res/drawable/umeng_socialize_line.png | Bin 2081 -> 0 bytes .../drawable/umeng_socialize_line_gray.png | Bin 2069 -> 0 bytes .../res/drawable/umeng_socialize_linkedin.png | Bin 1540 -> 0 bytes .../umeng_socialize_linkedin_gray.png | Bin 1538 -> 0 bytes .../umeng_socialize_location_grey.png | Bin 2007 -> 0 bytes .../drawable/umeng_socialize_location_ic.png | Bin 1464 -> 0 bytes .../umeng_socialize_location_mark.png | Bin 1464 -> 0 bytes .../drawable/umeng_socialize_location_off.png | Bin 774 -> 0 bytes .../drawable/umeng_socialize_location_on.png | Bin 775 -> 0 bytes .../drawable/umeng_socialize_nav_bar_bg.png | Bin 854 -> 0 bytes .../drawable/umeng_socialize_oauth_check.xml | 7 - .../umeng_socialize_oauth_check_off.png | Bin 158 -> 0 bytes .../umeng_socialize_oauth_check_on.png | Bin 729 -> 0 bytes .../drawable/umeng_socialize_pinterest.png | Bin 2578 -> 0 bytes .../umeng_socialize_pinterest_gray.png | Bin 2577 -> 0 bytes .../res/drawable/umeng_socialize_pocket.png | Bin 1778 -> 0 bytes .../drawable/umeng_socialize_pocket_gray.png | Bin 1776 -> 0 bytes .../umeng_socialize_pulltorefresh_arrow.png | Bin 463 -> 0 bytes .../main/res/drawable/umeng_socialize_pv.png | Bin 2210 -> 0 bytes .../res/drawable/umeng_socialize_qq_off.png | Bin 1649 -> 0 bytes .../res/drawable/umeng_socialize_qq_on.png | Bin 1579 -> 0 bytes .../drawable/umeng_socialize_qzone_off.png | Bin 2071 -> 0 bytes .../res/drawable/umeng_socialize_qzone_on.png | Bin 16507 -> 0 bytes .../res/drawable/umeng_socialize_refersh.png | Bin 3614 -> 0 bytes .../drawable/umeng_socialize_renren_off.png | Bin 2171 -> 0 bytes .../drawable/umeng_socialize_renren_on.png | Bin 16603 -> 0 bytes .../drawable/umeng_socialize_search_icon.png | Bin 636 -> 0 bytes .../umeng_socialize_shape_solid_black.xml | 5 - .../umeng_socialize_shape_solid_grey.xml | 5 - .../umeng_socialize_share_to_button.xml | 5 - ...eng_socialize_share_transparent_corner.xml | 8 - ...g_socialize_shareboard_item_background.xml | 6 - .../umeng_socialize_sidebar_normal.xml | 5 - .../umeng_socialize_sidebar_selected.xml | 5 - .../umeng_socialize_sidebar_selector.xml | 7 - .../res/drawable/umeng_socialize_sina_off.png | Bin 1990 -> 0 bytes .../res/drawable/umeng_socialize_sina_on.png | Bin 16514 -> 0 bytes .../res/drawable/umeng_socialize_sms_off.png | Bin 1797 -> 0 bytes .../res/drawable/umeng_socialize_sms_on.png | Bin 1763 -> 0 bytes .../umeng_socialize_title_back_bt.xml | 8 - .../umeng_socialize_title_back_bt_normal.png | Bin 3266 -> 0 bytes ...umeng_socialize_title_back_bt_selected.png | Bin 1426 -> 0 bytes .../umeng_socialize_title_right_bt.xml | 8 - .../umeng_socialize_title_right_bt_normal.png | Bin 1624 -> 0 bytes ...meng_socialize_title_right_bt_selected.png | Bin 680 -> 0 bytes .../umeng_socialize_title_tab_button_left.xml | 8 - ...umeng_socialize_title_tab_button_right.xml | 7 - .../umeng_socialize_title_tab_left_normal.png | Bin 1086 -> 0 bytes ...umeng_socialize_title_tab_left_pressed.png | Bin 1071 -> 0 bytes ...umeng_socialize_title_tab_right_normal.png | Bin 1096 -> 0 bytes ...meng_socialize_title_tab_right_pressed.png | Bin 1098 -> 0 bytes .../res/drawable/umeng_socialize_tumblr.png | Bin 1486 -> 0 bytes .../drawable/umeng_socialize_tumblr_gray.png | Bin 1485 -> 0 bytes .../res/drawable/umeng_socialize_twitter.png | Bin 16443 -> 0 bytes .../res/drawable/umeng_socialize_tx_off.png | Bin 1910 -> 0 bytes .../res/drawable/umeng_socialize_tx_on.png | Bin 16339 -> 0 bytes .../res/drawable/umeng_socialize_wechat.png | Bin 16524 -> 0 bytes .../drawable/umeng_socialize_wechat_gray.png | Bin 2131 -> 0 bytes .../res/drawable/umeng_socialize_whatsapp.png | Bin 2640 -> 0 bytes .../umeng_socialize_whatsapp_gray.png | Bin 2658 -> 0 bytes .../umeng_socialize_window_shadow_pad.xml | 65 - .../res/drawable/umeng_socialize_wxcircle.png | Bin 16340 -> 0 bytes .../umeng_socialize_wxcircle_gray.png | Bin 1988 -> 0 bytes .../res/drawable/umeng_socialize_x_button.png | Bin 713 -> 0 bytes .../res/drawable/umeng_socialize_yixin.png | Bin 2188 -> 0 bytes .../drawable/umeng_socialize_yixin_circle.png | Bin 2073 -> 0 bytes .../umeng_socialize_yixin_circle_gray.png | Bin 2078 -> 0 bytes .../drawable/umeng_socialize_yixin_gray.png | Bin 2213 -> 0 bytes .../res/drawable/umeng_socialize_ynote.png | Bin 1803 -> 0 bytes .../drawable/umeng_socialize_ynote_gray.png | Bin 1803 -> 0 bytes .../umeng_socialize_ucenter.xml | 160 --- .../umeng_socialize_full_alert_dialog.xml | 73 -- .../umeng_socialize_oauth_dialog.xml | 68 - .../umeng_socialize_post_comment.xml | 121 -- .../umeng_socialize_post_share.xml | 155 --- .../umeng_socialize_titile_bar.xml | 78 -- .../umeng_socialize_ucenter.xml | 155 --- .../layout/com_facebook_activity_layout.xml | 27 - .../layout/com_facebook_login_fragment.xml | 35 - .../layout/com_facebook_tooltip_bubble.xml | 74 -- .../messenger_button_send_blue_large.xml | 31 - .../messenger_button_send_blue_round.xml | 28 - .../messenger_button_send_blue_small.xml | 31 - .../messenger_button_send_white_large.xml | 31 - .../messenger_button_send_white_round.xml | 28 - .../messenger_button_send_white_small.xml | 31 - ...shake_umeng_socialize_scrshot_snapshot.xml | 11 - .../shake_umeng_socialize_share_dlg.xml | 158 --- .../src/main/res/layout/umeng_bak_at_list.xml | 75 -- .../res/layout/umeng_bak_at_list_item.xml | 29 - .../layout/umeng_bak_platform_item_simple.xml | 39 - .../umeng_bak_platform_selector_dialog.xml | 64 - .../res/layout/umeng_socialize_actionbar.xml | 123 -- .../res/layout/umeng_socialize_at_item.xml | 42 - .../res/layout/umeng_socialize_at_overlay.xml | 13 - .../res/layout/umeng_socialize_at_view.xml | 71 -- .../umeng_socialize_base_alert_dialog.xml | 62 - ...eng_socialize_base_alert_dialog_button.xml | 15 - .../umeng_socialize_bind_select_dialog.xml | 97 -- .../umeng_socialize_comment_content.xml | 77 -- .../layout/umeng_socialize_comment_detail.xml | 55 - .../umeng_socialize_comment_detail_nomap.xml | 47 - .../layout/umeng_socialize_comment_item.xml | 81 -- .../layout/umeng_socialize_comment_more.xml | 42 - .../layout/umeng_socialize_comment_view.xml | 54 - .../umeng_socialize_composer_header.xml | 9 - ...cialize_facebook_login_activity_layout.xml | 15 - .../umeng_socialize_failed_load_page.xml | 16 - .../umeng_socialize_full_alert_dialog.xml | 63 - ...umeng_socialize_full_alert_dialog_item.xml | 43 - .../layout/umeng_socialize_full_curtain.xml | 27 - .../layout/umeng_socialize_oauth_dialog.xml | 65 - .../layout/umeng_socialize_post_comment.xml | 97 -- .../umeng_socialize_post_comment_platform.xml | 26 - .../res/layout/umeng_socialize_post_share.xml | 145 --- ...umeng_socialize_pull_to_refresh_header.xml | 73 -- .../umeng_socialize_shareboard_item.xml | 28 - .../umeng_socialize_simple_spinner_item.xml | 21 - .../res/layout/umeng_socialize_titile_bar.xml | 84 -- .../umeng_socialize_titile_bar_comment.xml | 88 -- .../res/layout/umeng_socialize_ucenter.xml | 155 --- .../umeng_socialize_ucenter_platform_item.xml | 44 - .../src/main/res/raw/shake_sound.mp3 | Bin 9792 -> 0 bytes .../src/main/res/values/attrs.xml | 71 -- .../src/main/res/values/facebook_strings.xml | 39 - .../src/main/res/values/facebook_styles.xml | 108 -- .../res/values/messenger_button_strings.xml | 24 - .../res/values/messenger_button_styles.xml | 94 -- .../values/shake_umeng_socialize_style.xml | 59 - .../res/values/umeng_socialize_colors.xml | 15 - .../umeng_socialize_facebook_strings.xml | 7 - .../values/umeng_socialize_flickr_strings.xml | 8 - .../values/umeng_socialize_kakao_strings.xml | 8 - .../umeng_socialize_laiwang_strings.xml | 6 - .../values/umeng_socialize_line_strings.xml | 8 - .../umeng_socialize_linkedin_strings.xml | 7 - .../values/umeng_socialize_pocket_strings.xml | 7 - .../res/values/umeng_socialize_strings.xml | 72 -- .../main/res/values/umeng_socialize_style.xml | 93 -- .../values/umeng_socialize_tumblr_strings.xml | 8 - .../umeng_socialize_whatsapp_strings.xml | 8 - .../values/umeng_socialize_ynote_strings.xml | 8 - 1652 files changed, 76584 deletions(-) delete mode 100644 .gitignore delete mode 100644 app/.gitignore delete mode 100644 app/build.gradle delete mode 100644 app/libs/baidumapapi_v3_2_0.jar delete mode 100644 app/libs/library-2.4.0.jar delete mode 100644 app/libs/locSDK_3.1.jar delete mode 100755 app/libs/pinyin4j-2.5.0.jar delete mode 100644 app/libs/xstream-1.4.7.jar delete mode 100644 app/proguard-rules.pro delete mode 100644 app/src/androidTest/java/net/oschina/app/ApplicationTest.java delete mode 100644 app/src/main/AndroidManifest.xml delete mode 100644 app/src/main/aidl/net/oschina/app/service/INoticeService.aidl delete mode 100644 app/src/main/assets/brush.js delete mode 100644 app/src/main/assets/client.js delete mode 100644 app/src/main/assets/css/common.css delete mode 100644 app/src/main/assets/detail_page.html delete mode 100644 app/src/main/assets/detail_page.js delete mode 100644 app/src/main/assets/fontawesome-webfont.ttf delete mode 100644 app/src/main/assets/ic_soft_recommend.png delete mode 100644 app/src/main/assets/shCore.css delete mode 100644 app/src/main/assets/shCore.js delete mode 100644 app/src/main/assets/shThemeDefault.css delete mode 100644 app/src/main/java/com/dtr/zxing/activity/CaptureActivity.java delete mode 100644 app/src/main/java/com/dtr/zxing/camera/AutoFocusManager.java delete mode 100644 app/src/main/java/com/dtr/zxing/camera/CameraConfigurationManager.java delete mode 100644 app/src/main/java/com/dtr/zxing/camera/CameraManager.java delete mode 100644 app/src/main/java/com/dtr/zxing/camera/PreviewCallback.java delete mode 100644 app/src/main/java/com/dtr/zxing/camera/open/OpenCameraInterface.java delete mode 100644 app/src/main/java/com/dtr/zxing/decode/DecodeFormatManager.java delete mode 100644 app/src/main/java/com/dtr/zxing/decode/DecodeHandler.java delete mode 100644 app/src/main/java/com/dtr/zxing/decode/DecodeThread.java delete mode 100644 app/src/main/java/com/dtr/zxing/utils/BeepManager.java delete mode 100644 app/src/main/java/com/dtr/zxing/utils/CaptureActivityHandler.java delete mode 100644 app/src/main/java/com/dtr/zxing/utils/InactivityTimer.java delete mode 100644 app/src/main/java/com/fourmob/datetimepicker/date/AccessibleDateAnimator.java delete mode 100644 app/src/main/java/com/fourmob/datetimepicker/date/DatePickerController.java delete mode 100644 app/src/main/java/com/fourmob/datetimepicker/date/DatePickerDialog.java delete mode 100644 app/src/main/java/com/fourmob/datetimepicker/date/DayPickerView.java delete mode 100644 app/src/main/java/com/fourmob/datetimepicker/date/SimpleMonthAdapter.java delete mode 100644 app/src/main/java/com/fourmob/datetimepicker/date/SimpleMonthView.java delete mode 100644 app/src/main/java/com/fourmob/datetimepicker/date/TextViewWithCircularIndicator.java delete mode 100644 app/src/main/java/com/fourmob/datetimepicker/date/Utils.java delete mode 100644 app/src/main/java/com/fourmob/datetimepicker/date/YearPickerView.java delete mode 100644 app/src/main/java/net/oschina/app/AppConfig.java delete mode 100644 app/src/main/java/net/oschina/app/AppContext.java delete mode 100644 app/src/main/java/net/oschina/app/AppException.java delete mode 100644 app/src/main/java/net/oschina/app/AppManager.java delete mode 100644 app/src/main/java/net/oschina/app/AppStart.java delete mode 100644 app/src/main/java/net/oschina/app/LogUploadService.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/ActiveAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/BlogAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/CommentAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/EventAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/EventApplyAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/FindUserAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/FriendAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/MessageAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/MessageDetailAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/NewsAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/PostAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/RecycleBin.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/RecyclingPagerAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/SearchAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/SearchFriendAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/SelectFriendAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/SoftwareAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/SoftwareCatalogListAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/TweetAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/TweetLikeAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/TweetLikeUsersAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/UserFavoriteAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/ViewPageFragmentAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/adapter/ViewPageInfo.java delete mode 100644 app/src/main/java/net/oschina/app/api/ApiClientHelper.java delete mode 100644 app/src/main/java/net/oschina/app/api/ApiHttpClient.java delete mode 100644 app/src/main/java/net/oschina/app/api/ApiResponse.java delete mode 100644 app/src/main/java/net/oschina/app/api/OperationResponseHandler.java delete mode 100644 app/src/main/java/net/oschina/app/api/remote/OSChinaApi.java delete mode 100644 app/src/main/java/net/oschina/app/api/remote/OSChinaTeamApi.java delete mode 100644 app/src/main/java/net/oschina/app/base/BaseActivity.java delete mode 100644 app/src/main/java/net/oschina/app/base/BaseApplication.java delete mode 100644 app/src/main/java/net/oschina/app/base/BaseFragment.java delete mode 100644 app/src/main/java/net/oschina/app/base/BaseListFragment.java delete mode 100644 app/src/main/java/net/oschina/app/base/BaseNewActivity.java delete mode 100644 app/src/main/java/net/oschina/app/base/BaseViewPagerFragment.java delete mode 100644 app/src/main/java/net/oschina/app/base/BeseHaveHeaderListFragment.java delete mode 100644 app/src/main/java/net/oschina/app/base/CommonDetailFragment.java delete mode 100644 app/src/main/java/net/oschina/app/base/ListBaseAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Active.java delete mode 100644 app/src/main/java/net/oschina/app/bean/ActiveList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Apply.java delete mode 100644 app/src/main/java/net/oschina/app/bean/BarCode.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Base.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Blog.java delete mode 100644 app/src/main/java/net/oschina/app/bean/BlogCommentList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/BlogDetail.java delete mode 100644 app/src/main/java/net/oschina/app/bean/BlogList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Comment.java delete mode 100644 app/src/main/java/net/oschina/app/bean/CommentList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Constants.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Entity.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Event.java delete mode 100644 app/src/main/java/net/oschina/app/bean/EventAppliesList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/EventApplyData.java delete mode 100644 app/src/main/java/net/oschina/app/bean/EventList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/EventRemark.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Favorite.java delete mode 100644 app/src/main/java/net/oschina/app/bean/FavoriteList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/FindUserList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Friend.java delete mode 100644 app/src/main/java/net/oschina/app/bean/FriendsList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/ListEntity.java delete mode 100644 app/src/main/java/net/oschina/app/bean/LoginUserBean.java delete mode 100644 app/src/main/java/net/oschina/app/bean/MessageDetail.java delete mode 100644 app/src/main/java/net/oschina/app/bean/MessageDetailList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/MessageList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Messages.java delete mode 100644 app/src/main/java/net/oschina/app/bean/MyInformation.java delete mode 100644 app/src/main/java/net/oschina/app/bean/News.java delete mode 100644 app/src/main/java/net/oschina/app/bean/NewsDetail.java delete mode 100644 app/src/main/java/net/oschina/app/bean/NewsList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/NotebookData.java delete mode 100644 app/src/main/java/net/oschina/app/bean/NotebookDataList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Notice.java delete mode 100644 app/src/main/java/net/oschina/app/bean/NoticeDetail.java delete mode 100644 app/src/main/java/net/oschina/app/bean/OpenIdCatalog.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Post.java delete mode 100644 app/src/main/java/net/oschina/app/bean/PostDetail.java delete mode 100644 app/src/main/java/net/oschina/app/bean/PostList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Report.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Result.java delete mode 100644 app/src/main/java/net/oschina/app/bean/ResultBean.java delete mode 100644 app/src/main/java/net/oschina/app/bean/SearchList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/SearchResult.java delete mode 100644 app/src/main/java/net/oschina/app/bean/ShakeObject.java delete mode 100644 app/src/main/java/net/oschina/app/bean/SimpleBackPage.java delete mode 100644 app/src/main/java/net/oschina/app/bean/SingInResult.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Software.java delete mode 100644 app/src/main/java/net/oschina/app/bean/SoftwareCatalogList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/SoftwareDec.java delete mode 100644 app/src/main/java/net/oschina/app/bean/SoftwareDetail.java delete mode 100644 app/src/main/java/net/oschina/app/bean/SoftwareList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Tweet.java delete mode 100644 app/src/main/java/net/oschina/app/bean/TweetDetail.java delete mode 100644 app/src/main/java/net/oschina/app/bean/TweetLike.java delete mode 100644 app/src/main/java/net/oschina/app/bean/TweetLikeList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/TweetLikeUserList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/TweetsList.java delete mode 100644 app/src/main/java/net/oschina/app/bean/Update.java delete mode 100644 app/src/main/java/net/oschina/app/bean/User.java delete mode 100644 app/src/main/java/net/oschina/app/bean/UserInformation.java delete mode 100644 app/src/main/java/net/oschina/app/broadcast/AlarmReceiver.java delete mode 100644 app/src/main/java/net/oschina/app/cache/CacheManager.java delete mode 100644 app/src/main/java/net/oschina/app/cache/DataCleanManager.java delete mode 100644 app/src/main/java/net/oschina/app/cache/DiskLruCache.java delete mode 100644 app/src/main/java/net/oschina/app/cache/DiskLruCacheUtil.java delete mode 100644 app/src/main/java/net/oschina/app/db/DatabaseHelper.java delete mode 100644 app/src/main/java/net/oschina/app/db/NoteDatabase.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/DisplayRules.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/EmojiGridAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/EmojiKeyboardFragment.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/EmojiPageFragment.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/EmojiPagerAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/Emojicon.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/InputHelper.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/JSViewPager.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/KJEmojiConfig.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/KJEmojiFragment.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/OnEmojiClickListener.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/OnSendClickListener.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/ScrollGridView.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/SoftKeyboardStateHelper.java delete mode 100644 app/src/main/java/net/oschina/app/emoji/ToolbarFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/AboutOSCFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/ActiveFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/BlogDetailFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/BlogFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/BrowserFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/CommentFrament.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/EventAppliesFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/EventDetailFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/EventFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/ExploreFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/FeedBackFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/FriendsFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/MessageDetailFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/MessageFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/MyInformationFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/MyInformationFragmentDetail.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/NewsDetailFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/NewsFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/PostDetailFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/PostsFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/QuestionTagFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/SearchFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/SettingsFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/SettingsNotificationFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/SoftWareTweetsFrament.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/SoftwareCatalogListFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/SoftwareDetailFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/SoftwareListFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/TweetDetailFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/TweetLikeUsersFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/TweetPubFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/TweetRecordFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/TweetsFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/TweetsLikesFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/UserBlogFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/UserCenterFragment.java delete mode 100644 app/src/main/java/net/oschina/app/fragment/UserFavoriteFragment.java delete mode 100644 app/src/main/java/net/oschina/app/interf/BaseFragmentInterface.java delete mode 100644 app/src/main/java/net/oschina/app/interf/BaseViewInterface.java delete mode 100644 app/src/main/java/net/oschina/app/interf/ICallbackResult.java delete mode 100644 app/src/main/java/net/oschina/app/interf/OnTabReselectListener.java delete mode 100644 app/src/main/java/net/oschina/app/interf/OnWebViewImageListener.java delete mode 100644 app/src/main/java/net/oschina/app/service/DownloadService.java delete mode 100644 app/src/main/java/net/oschina/app/service/INoticeService.aidl delete mode 100644 app/src/main/java/net/oschina/app/service/NoticeService.java delete mode 100644 app/src/main/java/net/oschina/app/service/NoticeUtils.java delete mode 100644 app/src/main/java/net/oschina/app/service/PublicCommentTask.java delete mode 100644 app/src/main/java/net/oschina/app/service/ServerTaskService.java delete mode 100644 app/src/main/java/net/oschina/app/service/ServerTaskUtils.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/NotebookAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/TeamActiveAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/TeamDiaryDetailAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/TeamDiaryListAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/TeamDiaryPagerAdapter.java delete mode 100755 app/src/main/java/net/oschina/app/team/adapter/TeamDiscussAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/TeamIssueAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/TeamIssueCatalogAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/TeamMemberAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/TeamProjectListAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/TeamProjectListAdapterNew.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/TeamProjectMemberAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/TeamReplyAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/team/adapter/TeamSelectMemberAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/Author.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/MyIssueState.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/Team.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamActive.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamActiveDetail.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamActives.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamDiary.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamDiaryDetail.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamDiaryDetailBean.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamDiaryList.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamDiscuss.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamDiscussDetail.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamDiscussList.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamGit.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamIssue.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamIssueCatalog.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamIssueCatalogList.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamIssueDetail.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamIssueList.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamList.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamMember.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamMemberList.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamMyActive.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamMyActiveList.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamProject.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamProjectList.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamRepliesList.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamReply.java delete mode 100644 app/src/main/java/net/oschina/app/team/bean/TeamReplyBean.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/IssueListFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/MyIssueFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/NoteBookFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/NoteEditFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamActiveFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamBoardFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamDiaryDetailFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamDiscussDetailFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamDiscussFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamIssueCatalogFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamIssueDetailFragment.java delete mode 100755 app/src/main/java/net/oschina/app/team/fragment/TeamIssueFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamMemberFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamMemberInformationFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamProjectActiveFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamProjectFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamProjectMemberFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamProjectMemberSelectFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamProjectSelectPopupWindow.java delete mode 100644 app/src/main/java/net/oschina/app/team/fragment/TeamTweetDetailFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/ui/TeamMainActivity.java delete mode 100644 app/src/main/java/net/oschina/app/team/ui/TeamNewActiveActivity.java delete mode 100644 app/src/main/java/net/oschina/app/team/ui/TeamNewIssueActivity.java delete mode 100644 app/src/main/java/net/oschina/app/team/viewpagefragment/MyIssuePagerfragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/viewpagefragment/TeamDiaryFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/viewpagefragment/TeamIssueViewPageFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/viewpagefragment/TeamMainViewPagerFragment.java delete mode 100644 app/src/main/java/net/oschina/app/team/viewpagefragment/TeamProjectViewPagerFragment.java delete mode 100644 app/src/main/java/net/oschina/app/ui/DetailActivity.java delete mode 100644 app/src/main/java/net/oschina/app/ui/DoubleClickExitHelper.java delete mode 100644 app/src/main/java/net/oschina/app/ui/EventApplyDialog.java delete mode 100644 app/src/main/java/net/oschina/app/ui/EventLocationActivity.java delete mode 100644 app/src/main/java/net/oschina/app/ui/FindUserActivity.java delete mode 100644 app/src/main/java/net/oschina/app/ui/ImagePreviewActivity.java delete mode 100644 app/src/main/java/net/oschina/app/ui/LoginAccountBindOpenIdActivity.java delete mode 100644 app/src/main/java/net/oschina/app/ui/LoginActivity.java delete mode 100644 app/src/main/java/net/oschina/app/ui/LoginBindActivityChooseActivity.java delete mode 100644 app/src/main/java/net/oschina/app/ui/MainActivity.java delete mode 100644 app/src/main/java/net/oschina/app/ui/MainTab.java delete mode 100644 app/src/main/java/net/oschina/app/ui/MyQrodeDialog.java delete mode 100644 app/src/main/java/net/oschina/app/ui/NavigationDrawerFragment.java delete mode 100644 app/src/main/java/net/oschina/app/ui/QuickOptionDialog.java delete mode 100644 app/src/main/java/net/oschina/app/ui/ReportDialog.java delete mode 100644 app/src/main/java/net/oschina/app/ui/SelectFriendsActivity.java delete mode 100644 app/src/main/java/net/oschina/app/ui/ShakeActivity.java delete mode 100644 app/src/main/java/net/oschina/app/ui/ShareDialog.java delete mode 100644 app/src/main/java/net/oschina/app/ui/SimpleBackActivity.java delete mode 100644 app/src/main/java/net/oschina/app/ui/TweetActivity.java delete mode 100644 app/src/main/java/net/oschina/app/ui/dialog/CommonDialog.java delete mode 100644 app/src/main/java/net/oschina/app/ui/dialog/CommonToast.java delete mode 100644 app/src/main/java/net/oschina/app/ui/dialog/DialogAdapter.java delete mode 100644 app/src/main/java/net/oschina/app/ui/dialog/DialogControl.java delete mode 100644 app/src/main/java/net/oschina/app/ui/dialog/DialogTitleView.java delete mode 100644 app/src/main/java/net/oschina/app/ui/dialog/ImageMenuDialog.java delete mode 100644 app/src/main/java/net/oschina/app/ui/empty/EmptyLayout.java delete mode 100644 app/src/main/java/net/oschina/app/util/BitmapHelper.java delete mode 100644 app/src/main/java/net/oschina/app/util/ChatImageDisplayer.java delete mode 100644 app/src/main/java/net/oschina/app/util/ChatImageRequest.java delete mode 100644 app/src/main/java/net/oschina/app/util/CyptoUtils.java delete mode 100644 app/src/main/java/net/oschina/app/util/DialogHelp.java delete mode 100644 app/src/main/java/net/oschina/app/util/FileUtil.java delete mode 100644 app/src/main/java/net/oschina/app/util/FontSizeUtils.java delete mode 100644 app/src/main/java/net/oschina/app/util/HTMLUtil.java delete mode 100644 app/src/main/java/net/oschina/app/util/ImageUtils.java delete mode 100644 app/src/main/java/net/oschina/app/util/KJAnimations.java delete mode 100644 app/src/main/java/net/oschina/app/util/MethodsCompat.java delete mode 100644 app/src/main/java/net/oschina/app/util/PlatfromUtil.java delete mode 100644 app/src/main/java/net/oschina/app/util/QrCodeUtils.java delete mode 100644 app/src/main/java/net/oschina/app/util/SimpleTextWatcher.java delete mode 100644 app/src/main/java/net/oschina/app/util/StringUtils.java delete mode 100644 app/src/main/java/net/oschina/app/util/SynchronizeController.java delete mode 100644 app/src/main/java/net/oschina/app/util/TDevice.java delete mode 100644 app/src/main/java/net/oschina/app/util/TLog.java delete mode 100644 app/src/main/java/net/oschina/app/util/ThemeSwitchUtils.java delete mode 100644 app/src/main/java/net/oschina/app/util/TimeZoneUtil.java delete mode 100644 app/src/main/java/net/oschina/app/util/TypefaceUtils.java delete mode 100644 app/src/main/java/net/oschina/app/util/UIHelper.java delete mode 100644 app/src/main/java/net/oschina/app/util/URLsUtils.java delete mode 100644 app/src/main/java/net/oschina/app/util/UpdateManager.java delete mode 100644 app/src/main/java/net/oschina/app/util/ViewUtils.java delete mode 100644 app/src/main/java/net/oschina/app/util/XmlUtils.java delete mode 100644 app/src/main/java/net/oschina/app/util/ZipUtils.java delete mode 100644 app/src/main/java/net/oschina/app/viewpagerfragment/BlogViewPagerFragment.java delete mode 100644 app/src/main/java/net/oschina/app/viewpagerfragment/EventViewPagerFragment.java delete mode 100644 app/src/main/java/net/oschina/app/viewpagerfragment/FriendsViewPagerFragment.java delete mode 100644 app/src/main/java/net/oschina/app/viewpagerfragment/NewsViewPagerFragment.java delete mode 100644 app/src/main/java/net/oschina/app/viewpagerfragment/NoticeViewPagerFragment.java delete mode 100644 app/src/main/java/net/oschina/app/viewpagerfragment/OpensourceSoftwareFragment.java delete mode 100644 app/src/main/java/net/oschina/app/viewpagerfragment/QuestViewPagerFragment.java delete mode 100644 app/src/main/java/net/oschina/app/viewpagerfragment/SearchViewPageFragment.java delete mode 100644 app/src/main/java/net/oschina/app/viewpagerfragment/TweetsViewPagerFragment.java delete mode 100644 app/src/main/java/net/oschina/app/viewpagerfragment/UserFavoriteViewPagerFragment.java delete mode 100644 app/src/main/java/net/oschina/app/widget/AvatarView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/BadgeView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/CircleImageView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/CustomerScrollView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/DiaryPageContentView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/EmailSpan.java delete mode 100644 app/src/main/java/net/oschina/app/widget/FloorView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/HackyViewPager.java delete mode 100644 app/src/main/java/net/oschina/app/widget/HolderTextView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/IndexView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/KJDragGridView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/KJScrollView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/LinkView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/MyFragmentTabHost.java delete mode 100644 app/src/main/java/net/oschina/app/widget/MyLinkMovementMethod.java delete mode 100644 app/src/main/java/net/oschina/app/widget/MyURLSpan.java delete mode 100644 app/src/main/java/net/oschina/app/widget/NoLinkURLSpan.java delete mode 100644 app/src/main/java/net/oschina/app/widget/NoteItemCircleView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/PagerSlidingTabStrip.java delete mode 100644 app/src/main/java/net/oschina/app/widget/RecordButton.java delete mode 100644 app/src/main/java/net/oschina/app/widget/RecordButtonUtil.java delete mode 100644 app/src/main/java/net/oschina/app/widget/RecordDialog.java delete mode 100644 app/src/main/java/net/oschina/app/widget/ScrollLayout.java delete mode 100644 app/src/main/java/net/oschina/app/widget/TweetTextView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/am.java delete mode 100644 app/src/main/java/net/oschina/app/widget/togglebutton/ToggleButton.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/AndroidSpringLooperFactory.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/BaseSpringSystem.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/OrigamiValueConverter.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/SimpleSpringListener.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/Spring.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/SpringConfig.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/SpringConfigRegistry.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/SpringListener.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/SpringLooper.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/SpringSystem.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/SpringSystemListener.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/SpringUtil.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/SteppingLooper.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/SynchronousLooper.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/ui/SpringConfiguratorView.java delete mode 100644 app/src/main/java/net/oschina/app/widget/tooglebutton/rebound/ui/Util.java delete mode 100644 app/src/main/java/net/oschina/app/wxapi/WXEntryActivity.java delete mode 100644 app/src/main/jniLibs/armeabi/libBaiduMapSDK_v3_2_0_15.so delete mode 100644 app/src/main/jniLibs/armeabi/liblocSDK3.so delete mode 100644 app/src/main/jniLibs/armeabi/libzbar.so delete mode 100644 app/src/main/res/anim/anim_bottom_in.xml delete mode 100644 app/src/main/res/anim/anim_bottom_out.xml delete mode 100644 app/src/main/res/anim/audio_animations.xml delete mode 100644 app/src/main/res/anim/dialog_enter.xml delete mode 100644 app/src/main/res/anim/dialog_exit.xml delete mode 100644 app/src/main/res/anim/footer_menu_slide_in.xml delete mode 100644 app/src/main/res/anim/footer_menu_slide_out.xml delete mode 100644 app/src/main/res/anim/in_from_bottom.xml delete mode 100644 app/src/main/res/anim/in_from_top.xml delete mode 100644 app/src/main/res/anim/out_to_bottom.xml delete mode 100644 app/src/main/res/anim/out_to_top.xml delete mode 100644 app/src/main/res/anim/quick_option_close.xml delete mode 100644 app/src/main/res/color/date_picker_selector.xml delete mode 100644 app/src/main/res/color/date_picker_year_selector.xml delete mode 100644 app/src/main/res/color/done_text_color.xml delete mode 100644 app/src/main/res/color/drawer_menu_text.xml delete mode 100644 app/src/main/res/color/primarybar_txt.xml delete mode 100644 app/src/main/res/color/viewpage_selector_slide_title.xml delete mode 100644 app/src/main/res/drawable-hdpi/action_refresh.png delete mode 100644 app/src/main/res/drawable-hdpi/alien.png delete mode 100644 app/src/main/res/drawable-hdpi/angel.png delete mode 100644 app/src/main/res/drawable-hdpi/anger.png delete mode 100644 app/src/main/res/drawable-hdpi/angry.png delete mode 100644 app/src/main/res/drawable-hdpi/anguished.png delete mode 100644 app/src/main/res/drawable-hdpi/ant.png delete mode 100644 app/src/main/res/drawable-hdpi/astonished.png delete mode 100644 app/src/main/res/drawable-hdpi/audio0.png delete mode 100644 app/src/main/res/drawable-hdpi/audio1.png delete mode 100644 app/src/main/res/drawable-hdpi/audio2.png delete mode 100644 app/src/main/res/drawable-hdpi/audio3.png delete mode 100644 app/src/main/res/drawable-hdpi/baby.png delete mode 100644 app/src/main/res/drawable-hdpi/baby_chick.png delete mode 100644 app/src/main/res/drawable-hdpi/bear.png delete mode 100644 app/src/main/res/drawable-hdpi/beetle.png delete mode 100644 app/src/main/res/drawable-hdpi/bg_edittext_nor.9.png delete mode 100644 app/src/main/res/drawable-hdpi/bg_edittext_sel.9.png delete mode 100644 app/src/main/res/drawable-hdpi/bird.png delete mode 100644 app/src/main/res/drawable-hdpi/biz_chat_comment_send.png delete mode 100644 app/src/main/res/drawable-hdpi/biz_chat_comment_send_prs.png delete mode 100644 app/src/main/res/drawable-hdpi/blossom.png delete mode 100644 app/src/main/res/drawable-hdpi/blowfish.png delete mode 100644 app/src/main/res/drawable-hdpi/blue_heart.png delete mode 100644 app/src/main/res/drawable-hdpi/blush.png delete mode 100644 app/src/main/res/drawable-hdpi/boar.png delete mode 100644 app/src/main/res/drawable-hdpi/boom.png delete mode 100644 app/src/main/res/drawable-hdpi/bouquet.png delete mode 100644 app/src/main/res/drawable-hdpi/bow.png delete mode 100644 app/src/main/res/drawable-hdpi/bowtie.png delete mode 100644 app/src/main/res/drawable-hdpi/boy.png delete mode 100644 app/src/main/res/drawable-hdpi/bride_with_veil.png delete mode 100644 app/src/main/res/drawable-hdpi/broken_heart.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_blue_normal.9.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_blue_pressed.9.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_emoji.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_emoji_pressed.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_item_opt_more_normal.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_item_opt_more_pressed.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_radio_off.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_radio_on.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_small_green_normal.9.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_small_green_pressed.9.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_small_white_normal.9.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_small_white_pressed.9.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_white_normal.9.png delete mode 100644 app/src/main/res/drawable-hdpi/btn_white_pressed.9.png delete mode 100644 app/src/main/res/drawable-hdpi/bug.png delete mode 100644 app/src/main/res/drawable-hdpi/bust_in_silhouette.png delete mode 100644 app/src/main/res/drawable-hdpi/busts_in_silhouette.png delete mode 100644 app/src/main/res/drawable-hdpi/cactus.png delete mode 100644 app/src/main/res/drawable-hdpi/camel.png delete mode 100644 app/src/main/res/drawable-hdpi/cat.png delete mode 100644 app/src/main/res/drawable-hdpi/cat2.png delete mode 100644 app/src/main/res/drawable-hdpi/cherry_blossom.png delete mode 100644 app/src/main/res/drawable-hdpi/chestnut.png delete mode 100644 app/src/main/res/drawable-hdpi/chicken.png delete mode 100644 app/src/main/res/drawable-hdpi/clap.png delete mode 100644 app/src/main/res/drawable-hdpi/cloud.png delete mode 100644 app/src/main/res/drawable-hdpi/cold_sweat.png delete mode 100644 app/src/main/res/drawable-hdpi/collision.png delete mode 100644 app/src/main/res/drawable-hdpi/comment_line_triangle.png delete mode 100644 app/src/main/res/drawable-hdpi/comment_refer_container_bg.9.png delete mode 100644 app/src/main/res/drawable-hdpi/compose_clearbutton_background.9.png delete mode 100644 app/src/main/res/drawable-hdpi/compose_clearbutton_background_press.9.png delete mode 100644 app/src/main/res/drawable-hdpi/compose_toolbar_emoji_normal.png delete mode 100644 app/src/main/res/drawable-hdpi/compose_toolbar_emoji_pressed.png delete mode 100644 app/src/main/res/drawable-hdpi/compose_toolbar_keyboard_normal.png delete mode 100644 app/src/main/res/drawable-hdpi/compose_toolbar_keyboard_pressed.png delete mode 100644 app/src/main/res/drawable-hdpi/compose_toolbar_mention_normal.png delete mode 100644 app/src/main/res/drawable-hdpi/compose_toolbar_mention_pressed.png delete mode 100644 app/src/main/res/drawable-hdpi/compose_toolbar_picture_normal.png delete mode 100644 app/src/main/res/drawable-hdpi/compose_toolbar_picture_pressed.png delete mode 100644 app/src/main/res/drawable-hdpi/compose_toolbar_trend_normal.png delete mode 100644 app/src/main/res/drawable-hdpi/compose_toolbar_trend_pressed.png delete mode 100644 app/src/main/res/drawable-hdpi/confounded.png delete mode 100644 app/src/main/res/drawable-hdpi/confused.png delete mode 100644 app/src/main/res/drawable-hdpi/construction_worker.png delete mode 100644 app/src/main/res/drawable-hdpi/cop.png delete mode 100644 app/src/main/res/drawable-hdpi/couple.png delete mode 100644 app/src/main/res/drawable-hdpi/couple_with_heart.png delete mode 100644 app/src/main/res/drawable-hdpi/couplekiss.png delete mode 100644 app/src/main/res/drawable-hdpi/cow.png delete mode 100644 app/src/main/res/drawable-hdpi/cow2.png delete mode 100644 app/src/main/res/drawable-hdpi/crocodile.png delete mode 100644 app/src/main/res/drawable-hdpi/cry.png delete mode 100644 app/src/main/res/drawable-hdpi/crying_cat_face.png delete mode 100644 app/src/main/res/drawable-hdpi/cupid.png delete mode 100644 app/src/main/res/drawable-hdpi/cyclone.png delete mode 100644 app/src/main/res/drawable-hdpi/dancer.png delete mode 100644 app/src/main/res/drawable-hdpi/dancers.png delete mode 100644 app/src/main/res/drawable-hdpi/dash.png delete mode 100644 app/src/main/res/drawable-hdpi/day_comment_reply_container_bg.9.png delete mode 100644 app/src/main/res/drawable-hdpi/deciduous_tree.png delete mode 100644 app/src/main/res/drawable-hdpi/dialog_background.9.png delete mode 100644 app/src/main/res/drawable-hdpi/dialog_bottom_background.9.png delete mode 100644 app/src/main/res/drawable-hdpi/disappointed.png delete mode 100644 app/src/main/res/drawable-hdpi/disappointed_relieved.png delete mode 100644 app/src/main/res/drawable-hdpi/dizzy.png delete mode 100644 app/src/main/res/drawable-hdpi/dizzy_face.png delete mode 100644 app/src/main/res/drawable-hdpi/dog.png delete mode 100644 app/src/main/res/drawable-hdpi/dog2.png delete mode 100644 app/src/main/res/drawable-hdpi/dolphin.png delete mode 100644 app/src/main/res/drawable-hdpi/dragon.png delete mode 100644 app/src/main/res/drawable-hdpi/dragon_face.png delete mode 100644 app/src/main/res/drawable-hdpi/drawer_menu_icon_blog_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/drawer_menu_icon_gitapp_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/drawer_menu_icon_night_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/drawer_menu_icon_opensoft_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/drawer_menu_icon_quest_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/drawer_menu_icon_setting_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/drawer_shadow.9.png delete mode 100644 app/src/main/res/drawable-hdpi/dromedary_camel.png delete mode 100644 app/src/main/res/drawable-hdpi/droplet.png delete mode 100644 app/src/main/res/drawable-hdpi/ear.png delete mode 100644 app/src/main/res/drawable-hdpi/ear_of_rice.png delete mode 100644 app/src/main/res/drawable-hdpi/earth_africa.png delete mode 100644 app/src/main/res/drawable-hdpi/earth_americas.png delete mode 100644 app/src/main/res/drawable-hdpi/earth_asia.png delete mode 100644 app/src/main/res/drawable-hdpi/elephant.png delete mode 100644 app/src/main/res/drawable-hdpi/evergreen_tree.png delete mode 100644 app/src/main/res/drawable-hdpi/exclamation.png delete mode 100644 app/src/main/res/drawable-hdpi/expressionless.png delete mode 100644 app/src/main/res/drawable-hdpi/eyes.png delete mode 100644 app/src/main/res/drawable-hdpi/facepunch.png delete mode 100644 app/src/main/res/drawable-hdpi/fallen_leaf.png delete mode 100644 app/src/main/res/drawable-hdpi/family.png delete mode 100644 app/src/main/res/drawable-hdpi/fearful.png delete mode 100644 app/src/main/res/drawable-hdpi/feelsgood.png delete mode 100644 app/src/main/res/drawable-hdpi/feet.png delete mode 100644 app/src/main/res/drawable-hdpi/finnadie.png delete mode 100644 app/src/main/res/drawable-hdpi/fire.png delete mode 100644 app/src/main/res/drawable-hdpi/first_quarter_moon.png delete mode 100644 app/src/main/res/drawable-hdpi/first_quarter_moon_with_face.png delete mode 100644 app/src/main/res/drawable-hdpi/fish.png delete mode 100644 app/src/main/res/drawable-hdpi/fist.png delete mode 100644 app/src/main/res/drawable-hdpi/flash_default.png delete mode 100644 app/src/main/res/drawable-hdpi/flash_open.png delete mode 100644 app/src/main/res/drawable-hdpi/flushed.png delete mode 100644 app/src/main/res/drawable-hdpi/foggy.png delete mode 100644 app/src/main/res/drawable-hdpi/four_leaf_clover.png delete mode 100644 app/src/main/res/drawable-hdpi/frog.png delete mode 100644 app/src/main/res/drawable-hdpi/frowning.png delete mode 100644 app/src/main/res/drawable-hdpi/fu.png delete mode 100644 app/src/main/res/drawable-hdpi/full_moon.png delete mode 100644 app/src/main/res/drawable-hdpi/full_moon_with_face.png delete mode 100644 app/src/main/res/drawable-hdpi/girl.png delete mode 100644 app/src/main/res/drawable-hdpi/globe_with_meridians.png delete mode 100644 app/src/main/res/drawable-hdpi/goat.png delete mode 100644 app/src/main/res/drawable-hdpi/goberserk.png delete mode 100644 app/src/main/res/drawable-hdpi/godmode.png delete mode 100644 app/src/main/res/drawable-hdpi/green_heart.png delete mode 100644 app/src/main/res/drawable-hdpi/grey_exclamation.png delete mode 100644 app/src/main/res/drawable-hdpi/grey_question.png delete mode 100644 app/src/main/res/drawable-hdpi/grimacing.png delete mode 100644 app/src/main/res/drawable-hdpi/grin.png delete mode 100644 app/src/main/res/drawable-hdpi/grinning.png delete mode 100644 app/src/main/res/drawable-hdpi/guardsman.png delete mode 100644 app/src/main/res/drawable-hdpi/haircut.png delete mode 100644 app/src/main/res/drawable-hdpi/hamster.png delete mode 100644 app/src/main/res/drawable-hdpi/hand.png delete mode 100644 app/src/main/res/drawable-hdpi/hankey.png delete mode 100644 app/src/main/res/drawable-hdpi/hatched_chick.png delete mode 100644 app/src/main/res/drawable-hdpi/hatching_chick.png delete mode 100644 app/src/main/res/drawable-hdpi/hear_no_evil.png delete mode 100644 app/src/main/res/drawable-hdpi/heart.png delete mode 100644 app/src/main/res/drawable-hdpi/heart_eyes.png delete mode 100644 app/src/main/res/drawable-hdpi/heart_eyes_cat.png delete mode 100644 app/src/main/res/drawable-hdpi/heartbeat.png delete mode 100644 app/src/main/res/drawable-hdpi/heartpulse.png delete mode 100644 app/src/main/res/drawable-hdpi/herb.png delete mode 100644 app/src/main/res/drawable-hdpi/hibiscus.png delete mode 100644 app/src/main/res/drawable-hdpi/honeybee.png delete mode 100644 app/src/main/res/drawable-hdpi/horse.png delete mode 100644 app/src/main/res/drawable-hdpi/hurtrealbad.png delete mode 100644 app/src/main/res/drawable-hdpi/hushed.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_add_follow.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_axis_line.9.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_brows_back.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_brows_forward.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_brows_refresh.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_brows_systembrowser.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_clear_image_normal.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_clear_image_pressed.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_diary_back.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_diary_calendar.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_diary_canback.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_diary_canforward.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_diary_forward.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_drawer.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_follow_each_other.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_followed.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_item_goto_right_tip.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_launcher.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_note_delete.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_notification.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_private_message.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_share.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_week.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_call.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_explore_event.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_explore_finduser.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_explore_friends.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_explore_samecity.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_explore_scan.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_explore_shake.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_gcoding.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_link.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_loginout.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_my_blog.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_my_message.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_my_note.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_my_team.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_pic_menu.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_qr_code.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_record.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_record1.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_record2.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_record_delete.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_record_layout_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_record_layout_sel.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_record_listen.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_record_play.png delete mode 100644 app/src/main/res/drawable-hdpi/icon_up.png delete mode 100644 app/src/main/res/drawable-hdpi/image_sliding_block.9.png delete mode 100644 app/src/main/res/drawable-hdpi/imp.png delete mode 100644 app/src/main/res/drawable-hdpi/information_desk_person.png delete mode 100644 app/src/main/res/drawable-hdpi/innocent.png delete mode 100644 app/src/main/res/drawable-hdpi/japanese_goblin.png delete mode 100644 app/src/main/res/drawable-hdpi/japanese_ogre.png delete mode 100644 app/src/main/res/drawable-hdpi/joy.png delete mode 100644 app/src/main/res/drawable-hdpi/joy_cat.png delete mode 100644 app/src/main/res/drawable-hdpi/kiss.png delete mode 100644 app/src/main/res/drawable-hdpi/kissing.png delete mode 100644 app/src/main/res/drawable-hdpi/kissing_cat.png delete mode 100644 app/src/main/res/drawable-hdpi/kissing_closed_eyes.png delete mode 100644 app/src/main/res/drawable-hdpi/kissing_heart.png delete mode 100644 app/src/main/res/drawable-hdpi/kissing_smiling_eyes.png delete mode 100644 app/src/main/res/drawable-hdpi/koala.png delete mode 100644 app/src/main/res/drawable-hdpi/last_quarter_moon.png delete mode 100644 app/src/main/res/drawable-hdpi/last_quarter_moon_with_face.png delete mode 100644 app/src/main/res/drawable-hdpi/laughing.png delete mode 100644 app/src/main/res/drawable-hdpi/leaves.png delete mode 100644 app/src/main/res/drawable-hdpi/leopard.png delete mode 100644 app/src/main/res/drawable-hdpi/line.9.png delete mode 100644 app/src/main/res/drawable-hdpi/lips.png delete mode 100644 app/src/main/res/drawable-hdpi/load_img_error.png delete mode 100644 app/src/main/res/drawable-hdpi/load_img_loading.png delete mode 100644 app/src/main/res/drawable-hdpi/loading.png delete mode 100644 app/src/main/res/drawable-hdpi/love_letter.png delete mode 100644 app/src/main/res/drawable-hdpi/man.png delete mode 100644 app/src/main/res/drawable-hdpi/man_with_gua_pi_mao.png delete mode 100644 app/src/main/res/drawable-hdpi/man_with_turban.png delete mode 100644 app/src/main/res/drawable-hdpi/maple_leaf.png delete mode 100644 app/src/main/res/drawable-hdpi/mask.png delete mode 100644 app/src/main/res/drawable-hdpi/massage.png delete mode 100644 app/src/main/res/drawable-hdpi/messages_left_bubble.9.png delete mode 100644 app/src/main/res/drawable-hdpi/messages_left_bubble_highlighted.9.png delete mode 100644 app/src/main/res/drawable-hdpi/metal.png delete mode 100644 app/src/main/res/drawable-hdpi/milky_way.png delete mode 100644 app/src/main/res/drawable-hdpi/monkey.png delete mode 100644 app/src/main/res/drawable-hdpi/monkey_face.png delete mode 100644 app/src/main/res/drawable-hdpi/moon.png delete mode 100644 app/src/main/res/drawable-hdpi/mouse.png delete mode 100644 app/src/main/res/drawable-hdpi/mouse2.png delete mode 100644 app/src/main/res/drawable-hdpi/muscle.png delete mode 100644 app/src/main/res/drawable-hdpi/mushroom.png delete mode 100644 app/src/main/res/drawable-hdpi/musical_note.png delete mode 100644 app/src/main/res/drawable-hdpi/nail_care.png delete mode 100644 app/src/main/res/drawable-hdpi/neckbeard.png delete mode 100644 app/src/main/res/drawable-hdpi/neutral_face.png delete mode 100644 app/src/main/res/drawable-hdpi/new_moon.png delete mode 100644 app/src/main/res/drawable-hdpi/new_moon_with_face.png delete mode 100644 app/src/main/res/drawable-hdpi/night_chat_from_bg_normal.9.png delete mode 100644 app/src/main/res/drawable-hdpi/night_comment_reply_container_bg.9.png delete mode 100644 app/src/main/res/drawable-hdpi/night_image_sliding_block.9.png delete mode 100644 app/src/main/res/drawable-hdpi/no_good.png delete mode 100644 app/src/main/res/drawable-hdpi/no_mouth.png delete mode 100644 app/src/main/res/drawable-hdpi/nose.png delete mode 100644 app/src/main/res/drawable-hdpi/notes.png delete mode 100644 app/src/main/res/drawable-hdpi/ocean.png delete mode 100644 app/src/main/res/drawable-hdpi/octocat.png delete mode 100644 app/src/main/res/drawable-hdpi/octopus.png delete mode 100644 app/src/main/res/drawable-hdpi/ok_hand.png delete mode 100644 app/src/main/res/drawable-hdpi/ok_woman.png delete mode 100644 app/src/main/res/drawable-hdpi/older_man.png delete mode 100644 app/src/main/res/drawable-hdpi/older_woman.png delete mode 100644 app/src/main/res/drawable-hdpi/open_hands.png delete mode 100644 app/src/main/res/drawable-hdpi/open_mouth.png delete mode 100644 app/src/main/res/drawable-hdpi/ox.png delete mode 100644 app/src/main/res/drawable-hdpi/palm_tree.png delete mode 100644 app/src/main/res/drawable-hdpi/panda_face.png delete mode 100644 app/src/main/res/drawable-hdpi/partly_sunny.png delete mode 100644 app/src/main/res/drawable-hdpi/paw_prints.png delete mode 100644 app/src/main/res/drawable-hdpi/penguin.png delete mode 100644 app/src/main/res/drawable-hdpi/pensive.png delete mode 100644 app/src/main/res/drawable-hdpi/persevere.png delete mode 100644 app/src/main/res/drawable-hdpi/person_frowning.png delete mode 100644 app/src/main/res/drawable-hdpi/person_with_blond_hair.png delete mode 100644 app/src/main/res/drawable-hdpi/person_with_pouting_face.png delete mode 100644 app/src/main/res/drawable-hdpi/pig.png delete mode 100644 app/src/main/res/drawable-hdpi/pig2.png delete mode 100644 app/src/main/res/drawable-hdpi/pig_nose.png delete mode 100644 app/src/main/res/drawable-hdpi/platform.png delete mode 100644 app/src/main/res/drawable-hdpi/plus1.png delete mode 100644 app/src/main/res/drawable-hdpi/point_down.png delete mode 100644 app/src/main/res/drawable-hdpi/point_left.png delete mode 100644 app/src/main/res/drawable-hdpi/point_right.png delete mode 100644 app/src/main/res/drawable-hdpi/point_up.png delete mode 100644 app/src/main/res/drawable-hdpi/point_up_2.png delete mode 100644 app/src/main/res/drawable-hdpi/poodle.png delete mode 100644 app/src/main/res/drawable-hdpi/poop.png delete mode 100644 app/src/main/res/drawable-hdpi/pouting_cat.png delete mode 100644 app/src/main/res/drawable-hdpi/pray.png delete mode 100644 app/src/main/res/drawable-hdpi/princess.png delete mode 100644 app/src/main/res/drawable-hdpi/punch.png delete mode 100644 app/src/main/res/drawable-hdpi/purple_heart.png delete mode 100644 app/src/main/res/drawable-hdpi/question.png delete mode 100644 app/src/main/res/drawable-hdpi/quick_option_album_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/quick_option_album_over.png delete mode 100644 app/src/main/res/drawable-hdpi/quick_option_note_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/quick_option_note_over.png delete mode 100644 app/src/main/res/drawable-hdpi/quick_option_photo_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/quick_option_photo_over.png delete mode 100644 app/src/main/res/drawable-hdpi/quick_option_scan_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/quick_option_scan_over.png delete mode 100644 app/src/main/res/drawable-hdpi/quick_option_text_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/quick_option_text_over.png delete mode 100644 app/src/main/res/drawable-hdpi/quick_option_voice_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/quick_option_voice_over.png delete mode 100644 app/src/main/res/drawable-hdpi/rabbit.png delete mode 100644 app/src/main/res/drawable-hdpi/rabbit2.png delete mode 100644 app/src/main/res/drawable-hdpi/racehorse.png delete mode 100644 app/src/main/res/drawable-hdpi/rage.png delete mode 100644 app/src/main/res/drawable-hdpi/rage1.png delete mode 100644 app/src/main/res/drawable-hdpi/rage2.png delete mode 100644 app/src/main/res/drawable-hdpi/rage3.png delete mode 100644 app/src/main/res/drawable-hdpi/rage4.png delete mode 100644 app/src/main/res/drawable-hdpi/raised_hand.png delete mode 100644 app/src/main/res/drawable-hdpi/raised_hands.png delete mode 100644 app/src/main/res/drawable-hdpi/raising_hand.png delete mode 100644 app/src/main/res/drawable-hdpi/ram.png delete mode 100644 app/src/main/res/drawable-hdpi/rat.png delete mode 100644 app/src/main/res/drawable-hdpi/relaxed.png delete mode 100644 app/src/main/res/drawable-hdpi/relieved.png delete mode 100644 app/src/main/res/drawable-hdpi/revolving_hearts.png delete mode 100644 app/src/main/res/drawable-hdpi/rooster.png delete mode 100644 app/src/main/res/drawable-hdpi/rose.png delete mode 100644 app/src/main/res/drawable-hdpi/runner.png delete mode 100644 app/src/main/res/drawable-hdpi/running.png delete mode 100644 app/src/main/res/drawable-hdpi/satisfied.png delete mode 100644 app/src/main/res/drawable-hdpi/scream.png delete mode 100644 app/src/main/res/drawable-hdpi/scream_cat.png delete mode 100644 app/src/main/res/drawable-hdpi/see_no_evil.png delete mode 100644 app/src/main/res/drawable-hdpi/seedling.png delete mode 100644 app/src/main/res/drawable-hdpi/shaking.png delete mode 100644 app/src/main/res/drawable-hdpi/sheep.png delete mode 100644 app/src/main/res/drawable-hdpi/shell.png delete mode 100644 app/src/main/res/drawable-hdpi/shit.png delete mode 100644 app/src/main/res/drawable-hdpi/skull.png delete mode 100644 app/src/main/res/drawable-hdpi/sleeping.png delete mode 100644 app/src/main/res/drawable-hdpi/sleepy.png delete mode 100644 app/src/main/res/drawable-hdpi/sliding_tab_strip_background.9.png delete mode 100644 app/src/main/res/drawable-hdpi/smile.png delete mode 100644 app/src/main/res/drawable-hdpi/smile_cat.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_0.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_1.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_10.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_100.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_101.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_102.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_103.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_104.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_11.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_12.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_13.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_14.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_15.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_16.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_17.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_18.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_19.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_2.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_20.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_21.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_22.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_23.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_24.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_25.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_26.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_27.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_28.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_29.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_3.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_30.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_31.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_32.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_33.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_34.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_35.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_36.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_37.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_38.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_39.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_4.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_40.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_41.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_42.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_43.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_44.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_45.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_46.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_47.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_48.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_49.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_5.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_50.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_51.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_52.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_53.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_54.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_55.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_56.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_57.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_58.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_59.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_6.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_60.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_61.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_62.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_63.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_64.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_65.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_66.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_67.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_68.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_69.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_7.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_70.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_71.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_72.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_73.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_74.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_75.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_76.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_77.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_78.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_79.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_8.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_80.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_81.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_82.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_83.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_84.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_85.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_86.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_87.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_88.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_89.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_9.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_90.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_91.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_92.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_93.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_94.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_95.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_96.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_97.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_98.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_99.png delete mode 100644 app/src/main/res/drawable-hdpi/smiley_cat.png delete mode 100644 app/src/main/res/drawable-hdpi/smiling_imp.png delete mode 100644 app/src/main/res/drawable-hdpi/smirk.png delete mode 100644 app/src/main/res/drawable-hdpi/smirk_cat.png delete mode 100644 app/src/main/res/drawable-hdpi/snail.png delete mode 100644 app/src/main/res/drawable-hdpi/snake.png delete mode 100644 app/src/main/res/drawable-hdpi/snowflake.png delete mode 100644 app/src/main/res/drawable-hdpi/snowman.png delete mode 100644 app/src/main/res/drawable-hdpi/sob.png delete mode 100644 app/src/main/res/drawable-hdpi/sparkles.png delete mode 100644 app/src/main/res/drawable-hdpi/sparkling_heart.png delete mode 100644 app/src/main/res/drawable-hdpi/speak_no_evil.png delete mode 100644 app/src/main/res/drawable-hdpi/speech_balloon.png delete mode 100644 app/src/main/res/drawable-hdpi/spinner_48_inner_holo.png delete mode 100644 app/src/main/res/drawable-hdpi/spinner_48_outer_holo.png delete mode 100644 app/src/main/res/drawable-hdpi/squirrel.png delete mode 100644 app/src/main/res/drawable-hdpi/star.png delete mode 100644 app/src/main/res/drawable-hdpi/star2.png delete mode 100644 app/src/main/res/drawable-hdpi/stuck_out_tongue.png delete mode 100644 app/src/main/res/drawable-hdpi/stuck_out_tongue_closed_eyes.png delete mode 100644 app/src/main/res/drawable-hdpi/stuck_out_tongue_winking_eye.png delete mode 100644 app/src/main/res/drawable-hdpi/sun_with_face.png delete mode 100644 app/src/main/res/drawable-hdpi/sunflower.png delete mode 100644 app/src/main/res/drawable-hdpi/sunglasses.png delete mode 100644 app/src/main/res/drawable-hdpi/sunny.png delete mode 100644 app/src/main/res/drawable-hdpi/suspect.png delete mode 100644 app/src/main/res/drawable-hdpi/sweat.png delete mode 100644 app/src/main/res/drawable-hdpi/sweat_drops.png delete mode 100644 app/src/main/res/drawable-hdpi/sweat_smile.png delete mode 100644 app/src/main/res/drawable-hdpi/textfield_normal.9.png delete mode 100644 app/src/main/res/drawable-hdpi/textfield_selected.9.png delete mode 100644 app/src/main/res/drawable-hdpi/the_1.png delete mode 100644 app/src/main/res/drawable-hdpi/thought_balloon.png delete mode 100644 app/src/main/res/drawable-hdpi/thumbsdown.png delete mode 100644 app/src/main/res/drawable-hdpi/thumbsup.png delete mode 100644 app/src/main/res/drawable-hdpi/tiger.png delete mode 100644 app/src/main/res/drawable-hdpi/tiger2.png delete mode 100644 app/src/main/res/drawable-hdpi/timeline_card_small_button.9.png delete mode 100644 app/src/main/res/drawable-hdpi/timeline_card_small_button_highlighted.9.png delete mode 100644 app/src/main/res/drawable-hdpi/timeline_card_small_placeholder.png delete mode 100644 app/src/main/res/drawable-hdpi/tired_face.png delete mode 100644 app/src/main/res/drawable-hdpi/toast_background.9.png delete mode 100644 app/src/main/res/drawable-hdpi/tongue.png delete mode 100644 app/src/main/res/drawable-hdpi/triumph.png delete mode 100644 app/src/main/res/drawable-hdpi/trollface.png delete mode 100644 app/src/main/res/drawable-hdpi/tropical_fish.png delete mode 100644 app/src/main/res/drawable-hdpi/tulip.png delete mode 100644 app/src/main/res/drawable-hdpi/turtle.png delete mode 100644 app/src/main/res/drawable-hdpi/two_hearts.png delete mode 100644 app/src/main/res/drawable-hdpi/two_men_holding_hands.png delete mode 100644 app/src/main/res/drawable-hdpi/two_women_holding_hands.png delete mode 100644 app/src/main/res/drawable-hdpi/umbrella.png delete mode 100644 app/src/main/res/drawable-hdpi/unamused.png delete mode 100644 app/src/main/res/drawable-hdpi/user_center_bg.png delete mode 100644 app/src/main/res/drawable-hdpi/userinfo_icon_female.png delete mode 100644 app/src/main/res/drawable-hdpi/userinfo_icon_male.png delete mode 100644 app/src/main/res/drawable-hdpi/v.png delete mode 100644 app/src/main/res/drawable-hdpi/volcano.png delete mode 100644 app/src/main/res/drawable-hdpi/walking.png delete mode 100644 app/src/main/res/drawable-hdpi/waning_crescent_moon.png delete mode 100644 app/src/main/res/drawable-hdpi/waning_gibbous_moon.png delete mode 100644 app/src/main/res/drawable-hdpi/water_buffalo.png delete mode 100644 app/src/main/res/drawable-hdpi/wave.png delete mode 100644 app/src/main/res/drawable-hdpi/waxing_crescent_moon.png delete mode 100644 app/src/main/res/drawable-hdpi/waxing_gibbous_moon.png delete mode 100644 app/src/main/res/drawable-hdpi/weary.png delete mode 100644 app/src/main/res/drawable-hdpi/welcome.jpeg delete mode 100644 app/src/main/res/drawable-hdpi/whale.png delete mode 100644 app/src/main/res/drawable-hdpi/whale2.png delete mode 100644 app/src/main/res/drawable-hdpi/widget_bar_explore_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/widget_bar_explore_over.png delete mode 100644 app/src/main/res/drawable-hdpi/widget_bar_me_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/widget_bar_me_over.png delete mode 100644 app/src/main/res/drawable-hdpi/widget_bar_news_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/widget_bar_news_over.png delete mode 100644 app/src/main/res/drawable-hdpi/widget_bar_tweet_nor.png delete mode 100644 app/src/main/res/drawable-hdpi/widget_bar_tweet_over.png delete mode 100644 app/src/main/res/drawable-hdpi/widget_dface.png delete mode 100644 app/src/main/res/drawable-hdpi/widget_original_icon.png delete mode 100644 app/src/main/res/drawable-hdpi/widget_repaste_icon.png delete mode 100644 app/src/main/res/drawable-hdpi/widget_today_icon.png delete mode 100644 app/src/main/res/drawable-hdpi/wink.png delete mode 100644 app/src/main/res/drawable-hdpi/wolf.png delete mode 100644 app/src/main/res/drawable-hdpi/woman.png delete mode 100644 app/src/main/res/drawable-hdpi/worried.png delete mode 100644 app/src/main/res/drawable-hdpi/yellow_heart.png delete mode 100644 app/src/main/res/drawable-hdpi/yum.png delete mode 100644 app/src/main/res/drawable-hdpi/zap.png delete mode 100644 app/src/main/res/drawable-hdpi/zzz.png delete mode 100644 app/src/main/res/drawable-mdpi/blue.png delete mode 100644 app/src/main/res/drawable-mdpi/drawer_shadow.9.png delete mode 100644 app/src/main/res/drawable-mdpi/green.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_drawer.png delete mode 100644 app/src/main/res/drawable-mdpi/icon_color.png delete mode 100644 app/src/main/res/drawable-mdpi/icon_save.jpg delete mode 100644 app/src/main/res/drawable-mdpi/purple.png delete mode 100644 app/src/main/res/drawable-mdpi/red.png delete mode 100644 app/src/main/res/drawable-mdpi/yellow.png delete mode 100644 app/src/main/res/drawable-xhdpi/actionbar_icon_add.png delete mode 100644 app/src/main/res/drawable-xhdpi/actionbar_icon_switch_issue_state.png delete mode 100644 app/src/main/res/drawable-xhdpi/actionbar_more_icon_normal.png delete mode 100644 app/src/main/res/drawable-xhdpi/actionbar_search_icon.png delete mode 100644 app/src/main/res/drawable-xhdpi/actionbar_send_icon.png delete mode 100644 app/src/main/res/drawable-xhdpi/actionbar_unsend_icon.png delete mode 100644 app/src/main/res/drawable-xhdpi/biz_chat_comment_send.png delete mode 100644 app/src/main/res/drawable-xhdpi/biz_chat_comment_send_prs.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_clear_input_normal.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_clear_input_pressed.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_del.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_del_nor.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_del_press.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_emoji_normal.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_emoji_pressed.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_opt_text_to_tools_normal.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_opt_text_to_tools_pressed.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_opt_tools_to_text_normal.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_opt_tools_to_text_pressed.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_quickoption_nor.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_quickoption_pressed.png delete mode 100644 app/src/main/res/drawable-xhdpi/btn_quickoption_route.png delete mode 100644 app/src/main/res/drawable-xhdpi/chat_from_bg_normal.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/chat_from_bg_pressed.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/chat_to_bg_normal.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/chat_to_bg_pressed.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/comment_edittext_normal.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/comment_edittext_pressed.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/detail_map_guide.png delete mode 100644 app/src/main/res/drawable-xhdpi/drawer_shadow.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/edit_normal.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/edit_select.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_action_favor_normal.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_action_favor_on_normal.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_action_favor_on_pressed.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_action_favor_pressed.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_action_report_normal.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_action_report_pressed.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_action_repost_normal.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_action_repost_pressed.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_action_write_normal.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_action_write_pressed.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_brows_share.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_drawer.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_launcher.png delete mode 100644 app/src/main/res/drawable-xhdpi/icon_download.png delete mode 100644 app/src/main/res/drawable-xhdpi/icon_event_status_attend.png delete mode 100644 app/src/main/res/drawable-xhdpi/icon_event_status_checked.png delete mode 100644 app/src/main/res/drawable-xhdpi/icon_event_status_over.png delete mode 100644 app/src/main/res/drawable-xhdpi/notification_bg.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/page_icon_empty.png delete mode 100644 app/src/main/res/drawable-xhdpi/page_icon_network.png delete mode 100644 app/src/main/res/drawable-xhdpi/pagefailed_bg.png delete mode 100644 app/src/main/res/drawable-xhdpi/qr_capture.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/qr_scan_line.png delete mode 100644 app/src/main/res/drawable-xhdpi/qr_scan_mask.png delete mode 100644 app/src/main/res/drawable-xhdpi/review_toolbar_normal.png delete mode 100644 app/src/main/res/drawable-xhdpi/review_toolbar_pressed.png delete mode 100644 app/src/main/res/drawable-xhdpi/search_icon.png delete mode 100644 app/src/main/res/drawable-xhdpi/share_icon_copy.png delete mode 100644 app/src/main/res/drawable-xhdpi/share_icon_copy_a.png delete mode 100644 app/src/main/res/drawable-xhdpi/share_icon_more.png delete mode 100644 app/src/main/res/drawable-xhdpi/share_icon_more_a.png delete mode 100644 app/src/main/res/drawable-xhdpi/share_icon_qq.png delete mode 100644 app/src/main/res/drawable-xhdpi/share_icon_qq_a.png delete mode 100644 app/src/main/res/drawable-xhdpi/share_icon_sinaweibo.png delete mode 100644 app/src/main/res/drawable-xhdpi/share_icon_sinaweibo_a.png delete mode 100644 app/src/main/res/drawable-xhdpi/share_icon_wechat.png delete mode 100644 app/src/main/res/drawable-xhdpi/share_icon_wechat_a.png delete mode 100644 app/src/main/res/drawable-xhdpi/share_icon_wechatfriends.png delete mode 100644 app/src/main/res/drawable-xhdpi/share_icon_wechatfriends_a.png delete mode 100644 app/src/main/res/drawable-xhdpi/spinner_ab_default_holo_dark_am.9.png delete mode 100644 app/src/main/res/drawable-xhdpi/widget_today_icon.png delete mode 100644 app/src/main/res/drawable-xxhdpi/drawer_shadow.9.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_brows_refresh.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_drawer.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/drawable-xxhdpi/icon_actionbar_home.png delete mode 100644 app/src/main/res/drawable/actionbar_green_btn_normal.xml delete mode 100644 app/src/main/res/drawable/actionbar_green_btn_pressed.xml delete mode 100644 app/src/main/res/drawable/actionbar_green_btn_selector.xml delete mode 100644 app/src/main/res/drawable/bg_edittext.xml delete mode 100644 app/src/main/res/drawable/bg_notebook.xml delete mode 100644 app/src/main/res/drawable/bg_record_button.xml delete mode 100644 app/src/main/res/drawable/btn_blue_selector.xml delete mode 100644 app/src/main/res/drawable/btn_clear_input_selector.xml delete mode 100644 app/src/main/res/drawable/btn_del_selector.xml delete mode 100644 app/src/main/res/drawable/btn_emoji_selector.xml delete mode 100644 app/src/main/res/drawable/btn_green_selector.xml delete mode 100644 app/src/main/res/drawable/btn_item_opt_more_selector.xml delete mode 100644 app/src/main/res/drawable/btn_opt_text_to_tools_selector.xml delete mode 100644 app/src/main/res/drawable/btn_opt_tools_to_text_selector.xml delete mode 100644 app/src/main/res/drawable/btn_oval_background.xml delete mode 100644 app/src/main/res/drawable/btn_quickoption_selector.xml delete mode 100644 app/src/main/res/drawable/btn_radio_selector.xml delete mode 100644 app/src/main/res/drawable/btn_send_comment_selector.xml delete mode 100644 app/src/main/res/drawable/btn_small_green_selector.xml delete mode 100644 app/src/main/res/drawable/btn_small_white_selector.xml delete mode 100644 app/src/main/res/drawable/btn_white_selector.xml delete mode 100644 app/src/main/res/drawable/chat_from_bg_selector.xml delete mode 100644 app/src/main/res/drawable/chat_to_bg_selector.xml delete mode 100644 app/src/main/res/drawable/comment_background.xml delete mode 100644 app/src/main/res/drawable/comment_edittext_selector.xml delete mode 100644 app/src/main/res/drawable/compose_clear_selector.xml delete mode 100644 app/src/main/res/drawable/compose_toolbar_emoji_selector.xml delete mode 100644 app/src/main/res/drawable/compose_toolbar_keyboard_selector.xml delete mode 100644 app/src/main/res/drawable/compose_toolbar_mention_selector.xml delete mode 100644 app/src/main/res/drawable/compose_toolbar_picture_selector.xml delete mode 100644 app/src/main/res/drawable/compose_toolbar_trend_selector.xml delete mode 100644 app/src/main/res/drawable/day_list_item_background.xml delete mode 100644 app/src/main/res/drawable/day_quickoption_icon_album_selector.xml delete mode 100644 app/src/main/res/drawable/day_quickoption_icon_note_selector.xml delete mode 100644 app/src/main/res/drawable/day_quickoption_icon_photo_selector.xml delete mode 100644 app/src/main/res/drawable/day_quickoption_icon_scan_selector.xml delete mode 100644 app/src/main/res/drawable/day_quickoption_icon_text_selector.xml delete mode 100644 app/src/main/res/drawable/day_quickoption_icon_voice_selector.xml delete mode 100644 app/src/main/res/drawable/dialog_list_cell_single_choice.xml delete mode 100644 app/src/main/res/drawable/drawer_menu_item_background.xml delete mode 100644 app/src/main/res/drawable/ib_clear_image_selector.xml delete mode 100644 app/src/main/res/drawable/ic_action_comment.xml delete mode 100644 app/src/main/res/drawable/ic_action_favor.xml delete mode 100644 app/src/main/res/drawable/ic_action_report.xml delete mode 100644 app/src/main/res/drawable/ic_action_repost.xml delete mode 100644 app/src/main/res/drawable/ic_action_write.xml delete mode 100644 app/src/main/res/drawable/index_float_text_background.xml delete mode 100644 app/src/main/res/drawable/messages_left_bubble_selector.xml delete mode 100644 app/src/main/res/drawable/my_infomation_option_item_background.xml delete mode 100644 app/src/main/res/drawable/night_list_item_background.xml delete mode 100644 app/src/main/res/drawable/night_quickoption_icon_album_selector.xml delete mode 100644 app/src/main/res/drawable/night_quickoption_icon_note_selector.xml delete mode 100644 app/src/main/res/drawable/night_quickoption_icon_photo_selector.xml delete mode 100644 app/src/main/res/drawable/night_quickoption_icon_scan_selector.xml delete mode 100644 app/src/main/res/drawable/night_quickoption_icon_text_selector.xml delete mode 100644 app/src/main/res/drawable/night_quickoption_icon_voice_selector.xml delete mode 100644 app/src/main/res/drawable/pic_bg.xml delete mode 100644 app/src/main/res/drawable/progress_medium_holo.xml delete mode 100644 app/src/main/res/drawable/progressloading.xml delete mode 100644 app/src/main/res/drawable/selector_keyboard.xml delete mode 100644 app/src/main/res/drawable/selector_record_layout.xml delete mode 100644 app/src/main/res/drawable/selector_send.xml delete mode 100644 app/src/main/res/drawable/share_icon_copy_link_selector.xml delete mode 100644 app/src/main/res/drawable/share_icon_more_selector.xml delete mode 100644 app/src/main/res/drawable/share_icon_qq_selector.xml delete mode 100644 app/src/main/res/drawable/share_icon_sinaweibo_selector.xml delete mode 100644 app/src/main/res/drawable/share_icon_wechat_selector.xml delete mode 100644 app/src/main/res/drawable/share_icon_wechatfriends_selector.xml delete mode 100644 app/src/main/res/drawable/socialize_titlebar_item_background_selector.xml delete mode 100644 app/src/main/res/drawable/tab_icon_explore.xml delete mode 100644 app/src/main/res/drawable/tab_icon_me.xml delete mode 100644 app/src/main/res/drawable/tab_icon_new.xml delete mode 100644 app/src/main/res/drawable/tab_icon_tweet.xml delete mode 100644 app/src/main/res/drawable/team_issue_tag_bg.xml delete mode 100644 app/src/main/res/drawable/teamlist_item_background.xml delete mode 100644 app/src/main/res/drawable/textfield_selector.xml delete mode 100644 app/src/main/res/drawable/touch_clear_bg.xml delete mode 100644 app/src/main/res/layout/actionbar_green_button_layout.xml delete mode 100644 app/src/main/res/layout/activity_account_bind_openid.xml delete mode 100644 app/src/main/res/layout/activity_detail.xml delete mode 100644 app/src/main/res/layout/activity_image_preview.xml delete mode 100644 app/src/main/res/layout/activity_login.xml delete mode 100644 app/src/main/res/layout/activity_login_bind_choose.xml delete mode 100644 app/src/main/res/layout/activity_main.xml delete mode 100644 app/src/main/res/layout/activity_qr_scan.xml delete mode 100644 app/src/main/res/layout/activity_select_friends.xml delete mode 100644 app/src/main/res/layout/activity_shake.xml delete mode 100644 app/src/main/res/layout/activity_simple_fragment.xml delete mode 100644 app/src/main/res/layout/activity_team_active_pub.xml delete mode 100644 app/src/main/res/layout/activity_team_main.xml delete mode 100644 app/src/main/res/layout/activity_team_main_menu.xml delete mode 100644 app/src/main/res/layout/activity_team_new_issue.xml delete mode 100644 app/src/main/res/layout/activity_toolbar.xml delete mode 100644 app/src/main/res/layout/activity_tweet_pub.xml delete mode 100644 app/src/main/res/layout/activity_weixin_entry.xml delete mode 100644 app/src/main/res/layout/app_network_interrupt.xml delete mode 100644 app/src/main/res/layout/app_start.xml delete mode 100644 app/src/main/res/layout/base_viewpage_fragment.xml delete mode 100644 app/src/main/res/layout/base_viewpage_fragment_tab_item.xml delete mode 100644 app/src/main/res/layout/date_picker_dialog.xml delete mode 100644 app/src/main/res/layout/date_picker_done_button.xml delete mode 100644 app/src/main/res/layout/date_picker_header_view.xml delete mode 100644 app/src/main/res/layout/date_picker_selected_date.xml delete mode 100644 app/src/main/res/layout/date_picker_view_animator.xml delete mode 100644 app/src/main/res/layout/dialog_common.xml delete mode 100644 app/src/main/res/layout/dialog_cotent_share.xml delete mode 100644 app/src/main/res/layout/dialog_event_apply.xml delete mode 100644 app/src/main/res/layout/dialog_image_menu.xml delete mode 100644 app/src/main/res/layout/dialog_my_qr_code.xml delete mode 100644 app/src/main/res/layout/dialog_quick_option.xml delete mode 100644 app/src/main/res/layout/dialog_record.xml delete mode 100644 app/src/main/res/layout/dialog_report.xml delete mode 100644 app/src/main/res/layout/dialog_wait.xml delete mode 100644 app/src/main/res/layout/download_notification_show.xml delete mode 100644 app/src/main/res/layout/emoji_bottom.xml delete mode 100644 app/src/main/res/layout/emoji_content.xml delete mode 100644 app/src/main/res/layout/emoji_title.xml delete mode 100644 app/src/main/res/layout/emoji_toolbar.xml delete mode 100644 app/src/main/res/layout/event_spot_pupwindow.xml delete mode 100644 app/src/main/res/layout/frag_dynamic_detail.xml delete mode 100644 app/src/main/res/layout/frag_keyboard.xml delete mode 100644 app/src/main/res/layout/frag_main.xml delete mode 100644 app/src/main/res/layout/fragment_about.xml delete mode 100644 app/src/main/res/layout/fragment_browser.xml delete mode 100644 app/src/main/res/layout/fragment_detail_tool_bar.xml delete mode 100644 app/src/main/res/layout/fragment_emoji.xml delete mode 100644 app/src/main/res/layout/fragment_event_detail.xml delete mode 100644 app/src/main/res/layout/fragment_event_location.xml delete mode 100644 app/src/main/res/layout/fragment_explore.xml delete mode 100644 app/src/main/res/layout/fragment_feedback.xml delete mode 100644 app/src/main/res/layout/fragment_find_user.xml delete mode 100644 app/src/main/res/layout/fragment_my_information.xml delete mode 100644 app/src/main/res/layout/fragment_my_information_detail.xml delete mode 100644 app/src/main/res/layout/fragment_my_information_head.xml delete mode 100644 app/src/main/res/layout/fragment_navigation_drawer.xml delete mode 100644 app/src/main/res/layout/fragment_navigation_drawer_foot.xml delete mode 100644 app/src/main/res/layout/fragment_navigation_drawer_items.xml delete mode 100644 app/src/main/res/layout/fragment_news_detail.xml delete mode 100644 app/src/main/res/layout/fragment_note.xml delete mode 100644 app/src/main/res/layout/fragment_note_detail.xml delete mode 100644 app/src/main/res/layout/fragment_opensoftware.xml delete mode 100644 app/src/main/res/layout/fragment_pull_refresh_listview.xml delete mode 100644 app/src/main/res/layout/fragment_settings.xml delete mode 100644 app/src/main/res/layout/fragment_settings_notifcation.xml delete mode 100644 app/src/main/res/layout/fragment_team_board.xml delete mode 100644 app/src/main/res/layout/fragment_team_diary_detail.xml delete mode 100644 app/src/main/res/layout/fragment_team_diarypager.xml delete mode 100644 app/src/main/res/layout/fragment_team_discuss_detail.xml delete mode 100644 app/src/main/res/layout/fragment_team_dynamic.xml delete mode 100644 app/src/main/res/layout/fragment_team_issue_detail.xml delete mode 100644 app/src/main/res/layout/fragment_team_member.xml delete mode 100644 app/src/main/res/layout/fragment_team_selectteam.xml delete mode 100644 app/src/main/res/layout/fragment_team_userinfo.xml delete mode 100644 app/src/main/res/layout/fragment_team_userinfo_head.xml delete mode 100644 app/src/main/res/layout/fragment_tweet_pub.xml delete mode 100644 app/src/main/res/layout/fragment_user_center.xml delete mode 100644 app/src/main/res/layout/fragment_user_center_header.xml delete mode 100644 app/src/main/res/layout/fragment_user_center_information.xml delete mode 100644 app/src/main/res/layout/image_preview_item.xml delete mode 100644 app/src/main/res/layout/item_notebook.xml delete mode 100644 app/src/main/res/layout/item_team_diarydetail_head.xml delete mode 100644 app/src/main/res/layout/item_team_member.xml delete mode 100644 app/src/main/res/layout/item_team_select.xml delete mode 100644 app/src/main/res/layout/item_team_tweet_detail.xml delete mode 100644 app/src/main/res/layout/item_tweet_pub_record.xml delete mode 100644 app/src/main/res/layout/layout_note_detail_menu.xml delete mode 100644 app/src/main/res/layout/list_cell_active.xml delete mode 100644 app/src/main/res/layout/list_cell_apply.xml delete mode 100644 app/src/main/res/layout/list_cell_chat_from.xml delete mode 100644 app/src/main/res/layout/list_cell_chat_to.xml delete mode 100644 app/src/main/res/layout/list_cell_comment.xml delete mode 100644 app/src/main/res/layout/list_cell_dialog.xml delete mode 100644 app/src/main/res/layout/list_cell_diary_detail.xml delete mode 100644 app/src/main/res/layout/list_cell_emoji_item.xml delete mode 100644 app/src/main/res/layout/list_cell_event.xml delete mode 100644 app/src/main/res/layout/list_cell_favorite.xml delete mode 100644 app/src/main/res/layout/list_cell_footer.xml delete mode 100644 app/src/main/res/layout/list_cell_friend.xml delete mode 100644 app/src/main/res/layout/list_cell_message.xml delete mode 100644 app/src/main/res/layout/list_cell_news.xml delete mode 100644 app/src/main/res/layout/list_cell_popup_menu.xml delete mode 100644 app/src/main/res/layout/list_cell_post.xml delete mode 100644 app/src/main/res/layout/list_cell_reply_count.xml delete mode 100644 app/src/main/res/layout/list_cell_reply_name_content.xml delete mode 100644 app/src/main/res/layout/list_cell_select_friend.xml delete mode 100644 app/src/main/res/layout/list_cell_shake_result.xml delete mode 100644 app/src/main/res/layout/list_cell_software.xml delete mode 100644 app/src/main/res/layout/list_cell_softwarecatalog.xml delete mode 100644 app/src/main/res/layout/list_cell_team.xml delete mode 100644 app/src/main/res/layout/list_cell_team_active.xml delete mode 100644 app/src/main/res/layout/list_cell_team_child_issue.xml delete mode 100644 app/src/main/res/layout/list_cell_team_diary.xml delete mode 100644 app/src/main/res/layout/list_cell_team_discuss.xml delete mode 100644 app/src/main/res/layout/list_cell_team_issue.xml delete mode 100644 app/src/main/res/layout/list_cell_team_issue_catalog.xml delete mode 100644 app/src/main/res/layout/list_cell_team_project.xml delete mode 100644 app/src/main/res/layout/list_cell_team_project_member.xml delete mode 100644 app/src/main/res/layout/list_cell_team_reply.xml delete mode 100644 app/src/main/res/layout/list_cell_team_reply_refers.xml delete mode 100644 app/src/main/res/layout/list_cell_tweet.xml delete mode 100644 app/src/main/res/layout/list_cell_tweet_like.xml delete mode 100644 app/src/main/res/layout/list_cell_tweet_like_user.xml delete mode 100644 app/src/main/res/layout/list_head_commnt_line.xml delete mode 100644 app/src/main/res/layout/list_header_tweet_detail.xml delete mode 100644 app/src/main/res/layout/list_index_header.xml delete mode 100644 app/src/main/res/layout/pager_emoji.xml delete mode 100644 app/src/main/res/layout/pager_item_diary.xml delete mode 100644 app/src/main/res/layout/popup_window_team_projects_select.xml delete mode 100644 app/src/main/res/layout/record_view.xml delete mode 100644 app/src/main/res/layout/spinner_layout_head.xml delete mode 100644 app/src/main/res/layout/tab_indicator.xml delete mode 100644 app/src/main/res/layout/team_issue_lable.xml delete mode 100644 app/src/main/res/layout/view_base_toast.xml delete mode 100644 app/src/main/res/layout/view_dialog_header.xml delete mode 100644 app/src/main/res/layout/view_error_layout.xml delete mode 100644 app/src/main/res/layout/view_toast.xml delete mode 100644 app/src/main/res/layout/year_label_text_view.xml delete mode 100644 app/src/main/res/menu/browser_menu.xml delete mode 100644 app/src/main/res/menu/chat_menu.xml delete mode 100644 app/src/main/res/menu/common_detail_menu.xml delete mode 100644 app/src/main/res/menu/main_activity_menu.xml delete mode 100644 app/src/main/res/menu/notebook_edit_menu.xml delete mode 100644 app/src/main/res/menu/notebook_menu.xml delete mode 100644 app/src/main/res/menu/pub_new_team_active_menu.xml delete mode 100644 app/src/main/res/menu/pub_topic_menu.xml delete mode 100644 app/src/main/res/menu/pub_tweet_menu.xml delete mode 100644 app/src/main/res/menu/refresh_menu.xml delete mode 100644 app/src/main/res/menu/search_menu.xml delete mode 100644 app/src/main/res/menu/submit_menu.xml delete mode 100644 app/src/main/res/menu/team_issue_catalog_menu.xml delete mode 100644 app/src/main/res/menu/team_issue_detail_menu.xml delete mode 100644 app/src/main/res/menu/team_issue_menu.xml delete mode 100644 app/src/main/res/menu/team_main_menu.xml delete mode 100644 app/src/main/res/menu/team_new_issue_menu.xml delete mode 100644 app/src/main/res/menu/team_project_menu.xml delete mode 100644 app/src/main/res/raw/notificationsound.wav delete mode 100644 app/src/main/res/raw/qr_sacn.mp3 delete mode 100644 app/src/main/res/values-w820dp/dimens.xml delete mode 100644 app/src/main/res/values/arrays.xml delete mode 100644 app/src/main/res/values/attrs.xml delete mode 100644 app/src/main/res/values/colors.xml delete mode 100644 app/src/main/res/values/dimens.xml delete mode 100644 app/src/main/res/values/emoji_arrays.xml delete mode 100644 app/src/main/res/values/font_awsome_string.xml delete mode 100644 app/src/main/res/values/ids.xml delete mode 100644 app/src/main/res/values/layout_style.xml delete mode 100644 app/src/main/res/values/strings.xml delete mode 100644 app/src/main/res/values/styles.xml delete mode 100644 app/src/main/res/values/team_arrays.xml delete mode 100644 app/src/main/res/values/team_string.xml delete mode 100644 app/src/main/res/values/theme.xml delete mode 100644 app/src/main/res/values/theme_attrs.xml delete mode 100644 app/src/main/res/values/theme_color.xml delete mode 100644 app/src/main/res/values/toggle_button_attrs.xml delete mode 100644 build.gradle delete mode 100644 gradle.properties delete mode 100644 gradle/wrapper/gradle-wrapper.jar delete mode 100644 gradle/wrapper/gradle-wrapper.properties delete mode 100755 gradlew delete mode 100644 gradlew.bat delete mode 100644 settings.gradle delete mode 100644 social_sdk_library_project/build.gradle delete mode 100644 social_sdk_library_project/libs/SocialSDK_QQZone_1.jar delete mode 100644 social_sdk_library_project/libs/SocialSDK_QQZone_2.jar delete mode 100644 social_sdk_library_project/libs/SocialSDK_QQZone_3.jar delete mode 100644 social_sdk_library_project/libs/SocialSDK_Sina.jar delete mode 100644 social_sdk_library_project/libs/SocialSDK_WeiXin_1.jar delete mode 100644 social_sdk_library_project/libs/SocialSDK_WeiXin_2.jar delete mode 100644 social_sdk_library_project/libs/SocialSDK_actionbarview.jar delete mode 100644 social_sdk_library_project/libs/SocialSDK_flickr.jar delete mode 100644 social_sdk_library_project/libs/SocialSDK_scrshot.jar delete mode 100644 social_sdk_library_project/libs/SocialSDK_tencentWB_1.jar delete mode 100644 social_sdk_library_project/libs/SocialSDK_tencentWB_2.jar delete mode 100644 social_sdk_library_project/libs/SocialSDK_tencentWB_3.jar delete mode 100644 social_sdk_library_project/libs/SocialSDK_tumblr.jar delete mode 100644 social_sdk_library_project/libs/bolts-android-1.1.4.jar delete mode 100644 social_sdk_library_project/libs/httpmime-4.1.3.jar delete mode 100644 social_sdk_library_project/libs/umeng_social_sdk.jar delete mode 100644 social_sdk_library_project/src/main/AndroidManifest.xml delete mode 100644 social_sdk_library_project/src/main/res/anim/shake_umeng_socialize_cycle_5.xml delete mode 100644 social_sdk_library_project/src/main/res/anim/shake_umeng_socialize_dlg_alpha.xml delete mode 100644 social_sdk_library_project/src/main/res/anim/shake_umeng_socialize_dlg_scale.xml delete mode 100644 social_sdk_library_project/src/main/res/anim/shake_umeng_socialize_edit_anim.xml delete mode 100644 social_sdk_library_project/src/main/res/anim/shake_umeng_socialize_imageview_rotate.xml delete mode 100644 social_sdk_library_project/src/main/res/anim/shake_umeng_socialize_scrshot_dlg.xml delete mode 100644 social_sdk_library_project/src/main/res/anim/umeng_socialize_fade_in.xml delete mode 100644 social_sdk_library_project/src/main/res/anim/umeng_socialize_fade_out.xml delete mode 100644 social_sdk_library_project/src/main/res/anim/umeng_socialize_shareboard_animation_in.xml delete mode 100644 social_sdk_library_project/src/main/res/anim/umeng_socialize_shareboard_animation_out.xml delete mode 100644 social_sdk_library_project/src/main/res/anim/umeng_socialize_slide_in_from_bottom.xml delete mode 100644 social_sdk_library_project/src/main/res/anim/umeng_socialize_slide_out_from_bottom.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/com_facebook_button_icon.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/com_facebook_button_like_icon_selected.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/com_facebook_button_send_icon.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/com_facebook_close.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/com_facebook_tooltip_black_background.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/com_facebook_tooltip_black_bottomnub.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/com_facebook_tooltip_black_topnub.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/com_facebook_tooltip_black_xout.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/com_facebook_tooltip_blue_background.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/com_facebook_tooltip_blue_bottomnub.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/com_facebook_tooltip_blue_topnub.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/com_facebook_tooltip_blue_xout.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/messenger_bubble_large_blue.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/messenger_bubble_large_white.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/messenger_bubble_small_blue.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/messenger_bubble_small_white.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/messenger_button_send_round_shadow.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/umeng_socialize_light_bar_bg_pad.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/umeng_socialize_nav_bar_bg_pad.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/umeng_socialize_oauth_check_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/umeng_socialize_oauth_check_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/umeng_socialize_share_music.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/umeng_socialize_share_pic.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-hdpi/umeng_socialize_share_video.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_button_icon.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_button_like_icon_selected.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_button_send_icon.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_close.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_profile_picture_blank_portrait.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_profile_picture_blank_square.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_tooltip_black_background.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_tooltip_black_bottomnub.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_tooltip_black_topnub.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_tooltip_black_xout.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_tooltip_blue_background.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_tooltip_blue_bottomnub.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_tooltip_blue_topnub.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/com_facebook_tooltip_blue_xout.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/messenger_bubble_large_blue.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/messenger_bubble_large_white.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/messenger_bubble_small_blue.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/messenger_bubble_small_white.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-mdpi/messenger_button_send_round_shadow.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/com_facebook_button_icon.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/com_facebook_button_like_icon_selected.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/com_facebook_button_send_icon.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/com_facebook_close.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/com_facebook_tooltip_black_background.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/com_facebook_tooltip_black_bottomnub.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/com_facebook_tooltip_black_topnub.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/com_facebook_tooltip_black_xout.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/com_facebook_tooltip_blue_background.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/com_facebook_tooltip_blue_bottomnub.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/com_facebook_tooltip_blue_topnub.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/com_facebook_tooltip_blue_xout.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/messenger_bubble_large_blue.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/messenger_bubble_large_white.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/messenger_bubble_small_blue.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/messenger_bubble_small_white.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/messenger_button_send_round_shadow.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/umeng_socialize_switchimage_choose.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xhdpi/umeng_socialize_switchimage_unchoose.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xxhdpi/com_facebook_button_icon.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xxhdpi/com_facebook_button_like_icon_selected.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xxhdpi/com_facebook_button_send_icon.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xxhdpi/messenger_bubble_large_blue.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xxhdpi/messenger_bubble_large_white.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xxhdpi/messenger_bubble_small_blue.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xxhdpi/messenger_bubble_small_white.png delete mode 100644 social_sdk_library_project/src/main/res/drawable-xxhdpi/messenger_button_send_round_shadow.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/btn_red.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/btn_red_normal.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/btn_red_pressed.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/btn_red_unable.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/com_facebook_button_background.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/com_facebook_button_like_background.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/com_facebook_button_login_silver_background.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/com_facebook_button_send_background.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/messenger_button_blue_bg_round.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/messenger_button_blue_bg_selector.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/messenger_button_white_bg_round.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/messenger_button_white_bg_selector.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/shake_umeng_socialize_close.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/shake_umeng_socialize_close_button_style.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/shake_umeng_socialize_close_pressed.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/shake_umeng_socialize_edittext_corner.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/shake_umeng_socialize_imgview_border.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/shake_umeng_socialize_preview_edit_corners_style.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/shake_umeng_socialize_shake_layout_corner.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/shake_umeng_socialize_share_btn_style.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_action_back.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_action_back_normal.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_action_back_selected.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_action_like.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_action_personal_icon.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_action_personal_normal.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_action_personal_selected.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_action_share_icon.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_action_share_normal.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_action_share_selected.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_action_unlike.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_actionbar_bg.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_at_button.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_at_normal.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_at_selected.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_bind_bg.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_button_blue.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_button_grey.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_button_grey_blue.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_button_login.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_button_login_normal.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_button_login_pressed.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_button_red.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_button_red_blue.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_button_white.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_button_white_blue.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_checked.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_comment_bg.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_comment_icon.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_comment_item_bg_shape.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_comment_normal.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_comment_selected.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_commnet_header_bg.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_default_avatar.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_divider_line.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_douban_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_douban_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_evernote.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_evernote_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_facebook.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_facebook_close.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_facebook_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_fetch_image.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_fetch_location_disabled.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_flickr.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_flickr_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_follow_check.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_follow_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_follow_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_gmail_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_gmail_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_google.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_instagram_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_instagram_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_kakao.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_kakao_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_laiwang.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_laiwang_dynamic.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_laiwang_dynamic_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_laiwang_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_light_bar_bg.9.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_line.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_line_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_linkedin.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_linkedin_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_location_grey.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_location_ic.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_location_mark.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_location_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_location_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_nav_bar_bg.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_oauth_check.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_oauth_check_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_oauth_check_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_pinterest.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_pinterest_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_pocket.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_pocket_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_pulltorefresh_arrow.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_pv.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_qq_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_qq_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_qzone_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_qzone_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_refersh.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_renren_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_renren_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_search_icon.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_shape_solid_black.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_shape_solid_grey.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_share_to_button.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_share_transparent_corner.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_shareboard_item_background.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_sidebar_normal.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_sidebar_selected.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_sidebar_selector.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_sina_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_sina_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_sms_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_sms_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_title_back_bt.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_title_back_bt_normal.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_title_back_bt_selected.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_title_right_bt.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_title_right_bt_normal.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_title_right_bt_selected.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_title_tab_button_left.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_title_tab_button_right.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_title_tab_left_normal.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_title_tab_left_pressed.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_title_tab_right_normal.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_title_tab_right_pressed.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_tumblr.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_tumblr_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_twitter.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_tx_off.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_tx_on.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_wechat.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_wechat_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_whatsapp.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_whatsapp_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_window_shadow_pad.xml delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_wxcircle.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_wxcircle_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_x_button.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_yixin.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_yixin_circle.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_yixin_circle_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_yixin_gray.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_ynote.png delete mode 100644 social_sdk_library_project/src/main/res/drawable/umeng_socialize_ynote_gray.png delete mode 100644 social_sdk_library_project/src/main/res/layout-h500dp-normal/umeng_socialize_ucenter.xml delete mode 100644 social_sdk_library_project/src/main/res/layout-sw550dp-large/umeng_socialize_full_alert_dialog.xml delete mode 100644 social_sdk_library_project/src/main/res/layout-sw550dp-large/umeng_socialize_oauth_dialog.xml delete mode 100644 social_sdk_library_project/src/main/res/layout-sw550dp-large/umeng_socialize_post_comment.xml delete mode 100644 social_sdk_library_project/src/main/res/layout-sw550dp-large/umeng_socialize_post_share.xml delete mode 100644 social_sdk_library_project/src/main/res/layout-sw550dp-large/umeng_socialize_titile_bar.xml delete mode 100644 social_sdk_library_project/src/main/res/layout-sw550dp-large/umeng_socialize_ucenter.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/com_facebook_activity_layout.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/com_facebook_login_fragment.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/com_facebook_tooltip_bubble.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/messenger_button_send_blue_large.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/messenger_button_send_blue_round.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/messenger_button_send_blue_small.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/messenger_button_send_white_large.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/messenger_button_send_white_round.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/messenger_button_send_white_small.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/shake_umeng_socialize_scrshot_snapshot.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/shake_umeng_socialize_share_dlg.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_bak_at_list.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_bak_at_list_item.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_bak_platform_item_simple.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_bak_platform_selector_dialog.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_actionbar.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_at_item.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_at_overlay.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_at_view.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_base_alert_dialog.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_base_alert_dialog_button.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_bind_select_dialog.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_comment_content.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_comment_detail.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_comment_detail_nomap.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_comment_item.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_comment_more.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_comment_view.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_composer_header.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_facebook_login_activity_layout.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_failed_load_page.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_full_alert_dialog.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_full_alert_dialog_item.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_full_curtain.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_oauth_dialog.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_post_comment.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_post_comment_platform.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_post_share.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_pull_to_refresh_header.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_shareboard_item.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_simple_spinner_item.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_titile_bar.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_titile_bar_comment.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_ucenter.xml delete mode 100644 social_sdk_library_project/src/main/res/layout/umeng_socialize_ucenter_platform_item.xml delete mode 100644 social_sdk_library_project/src/main/res/raw/shake_sound.mp3 delete mode 100644 social_sdk_library_project/src/main/res/values/attrs.xml delete mode 100644 social_sdk_library_project/src/main/res/values/facebook_strings.xml delete mode 100644 social_sdk_library_project/src/main/res/values/facebook_styles.xml delete mode 100644 social_sdk_library_project/src/main/res/values/messenger_button_strings.xml delete mode 100644 social_sdk_library_project/src/main/res/values/messenger_button_styles.xml delete mode 100644 social_sdk_library_project/src/main/res/values/shake_umeng_socialize_style.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_colors.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_facebook_strings.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_flickr_strings.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_kakao_strings.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_laiwang_strings.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_line_strings.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_linkedin_strings.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_pocket_strings.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_strings.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_style.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_tumblr_strings.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_whatsapp_strings.xml delete mode 100644 social_sdk_library_project/src/main/res/values/umeng_socialize_ynote_strings.xml diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 26355427d..000000000 --- a/.gitignore +++ /dev/null @@ -1,126 +0,0 @@ -tng-customsuite.xml -**pom.xml.releaseBackup -release.properties -gen -*/seed.txt -notes -logs -gen-external-apklibs -.idea -*.iml -.DS_Store -*.swp -out -.gradle -/local.properties -/build - -###OSX### - -.DS_Store -.AppleDouble -.LSOverride - -# Icon must ends with two \r. -Icon - - -# Thumbnails -._* - -# Files that might appear on external disk -.Spotlight-V100 -.Trashes - - -###Linux### - -*~ - -# KDE directory preferences -.directory - - -###Android### - -# Built application files -*.apk -*.ap_ - -# Files for ART and Dalvik VM -*.dex - -# Java class files -*.class - -# Generated files -bin/ -gen/ - -# Gradle files -.gradle/ -.gradletasknamecache -build/ - -# Local configuration file (sdk path, etc) -local.properties - -# Proguard folder generated by Eclipse -proguard/ - -# Lint -lint-report.html -lint-report_files/ -lint_result.txt - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.war -*.ear - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - - -###IntelliJ### - -*.iml -*.ipr -*.iws -.idea/ - - -###Eclipse### - -*.pydevproject -.metadata -tmp/ -*.tmp -*.bak -*.swp -*~.nib -.settings/ -.loadpath - -# External tool builders -.externalToolBuilders/ - -# Locally stored "Eclipse launch configurations" -*.launch - -# CDT-specific -.cproject - -# PDT-specific -.buildpath - -# sbteclipse plugin -.target - -# TeXlipse plugin -.texlipseXml version="1.0" encoding="UTF-8"?> -gradle.properties -sign.properties -app/oschina.keystore diff --git a/app/.gitignore b/app/.gitignore deleted file mode 100644 index 796b96d1c..000000000 --- a/app/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/app/build.gradle b/app/build.gradle deleted file mode 100644 index e540323d6..000000000 --- a/app/build.gradle +++ /dev/null @@ -1,34 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'newlens' - -android { - compileSdkVersion 23 - buildToolsVersion '21.1.2' - - defaultConfig { - applicationId "net.oschina.app" - minSdkVersion 15 - targetSdkVersion 23 - versionCode 48 - versionName "2.4.1" - } - - // 移除lint检查的error - lintOptions { - abortOnError false - } -} - -dependencies { - compile fileTree(include: ['*.jar'], dir: 'libs') - compile project(':social_sdk_library_project') - compile 'com.android.support:appcompat-v7:23.1.0' - compile 'com.github.chrisbanes.photoview:library:1.2.3' - compile 'com.loopj.android:android-async-http:1.4.9' - compile 'com.jakewharton:butterknife:6.1.0' - compile 'org.kymjs.kjframe:kjframe:2.6' - compile 'com.networkbench.newlens.agent.android:nbs.newlens.agent:2.2.7' - compile 'com.google.zxing:core:3.2.0' - compile 'com.joanzapata.android:android-iconify:1.0.9' - compile 'com.makeramen:roundedimageview:2.1.1' -} diff --git a/app/libs/baidumapapi_v3_2_0.jar b/app/libs/baidumapapi_v3_2_0.jar deleted file mode 100644 index c60212c7633ee1dac18b0cc3292cee99b9bbb290..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 839977 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

{r<=;{Gp+W2_)aDV^U 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%0DyRdRg}#EYRT0V;+!>N`j;kP@#EzU?0g8MXX_(` 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

wU8pze#9o{uUfz$O?RbrP{ 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

xTd5z_@T`>E>p#m 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'>8CY1~aK3%VcR$`Q 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%0DX1fz z9u&!$G|~2RpcNMu7ej%+pDYkg5_PN|(WK&C9b&BECVmt#?mD`{^ikOX%y_*5Bi}Me8U5^x$rHO>K6e8Jz+&%F=KskC2d)A9knm&L17>+>loRc*#<@n&4HXI-%t-7%KjF_v4cJHr>I1nr0NaeRw?3yhRSqS;!!LiBJ()W~&!}LMxKsQ#GEkX~apmk{Yn!XZ zEALw;W*HxA7W(Os`r9Kz+x7)_MvcdVF)&=&z$|8EtP_G}I>U`;5V{k*F8Ku-ANd7V z$A=ws&zj-4K+1+r(M(zQa}4EnxA@mSY=oLH&Hm^CN)d|2M#_A(g)1L(NdnL_IPLzb zE^7KOUG%>}7yZxk!ywH<;{0Zdu?so%Rb$E`;HDFGAfQPv3Rs9*zldQq$n`= z@KT?0m;?mBDjPVq`it0v^xWmJ5sL;FQ%3W#DYOCefZ?7e)ExYOnwtH*y#Dxz@1Kq%|0Do^+~T!C#P4SS|NbFJe~1U*WazIm zujfNNJwyH^sDSSf`uoiODvA-mWHS8s)jg5Fe=y?Teuvl6-PkzL-agpb`K`MfAZ7qz zoBjTMb9HrVbroQe0fg!rFz;Sm0P5?jtGnCV7t#7%uAZKrUPTLv`xpc8e9iwSwj_Mr zk?{8o319Xj{L^-Xo|<3705`P!Z9BpVH5G4JG=DvT4g(zYq#{+82xXSB3$A%19bYxW zxuxg!VFcXxE_2$1v4zjTpCNI$!1wQ2!x1cZVf`MiRcphcch~E`Z*6}7YBF|nQ`_P8 zM9vB?0LnQRP=eE?QSAop0L3hZk_@K#3Pgt6)^1J9h;B`*_BSNmvxjRyw^?DmeTh5aM$r3rO|5!lo!wE_ zkz-MNP1yVaUwOVW>u9;9WyRP{0(ld2+&Dv2K&&IjWWvaHwOf*{CNz7AC^U+Keo$^c z8EVxh^2U%u@<0Yy5n?^^5CjN!U|X%W3f{%_6dDq-}*U)s=*nE?fbCZ*QlbL;!k#(J(bse8{9h-0!8FT63ed*=*QoDIxIJ;lC zdY)U`o|{^p85#k~shZZQs^&{At9T+Qcg!nz%*}ty!F$BUeZz>qgi}OXR#{D5NB6Udy~9h!ssHah^~ot|8JSsG**Q5mxi9;Q7Z#V6 zmX%jjyd;-4wzRhQ_V)Gl_m7NCOwP^EFR$+I?f*(0J->Vr*L#4x+NikzAOXzqDy`Fz z)~sE!SOEz@e9*wz5ELZJ{GF7sqW)kwEEF))EpARJE~`T#dp8evsWxLjHS>>I5Bc#- zY2tUCZXR@}?S&adD^r6&_FcK4OJUHk?zjUk5| zxAvoH7LyZ12&_6fWuINhH8ANX9DJX}HF3GDmL^esZ^kOe;rPk6*|4Who_ac≫|y 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�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�n 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⇔|8&ka3f?G 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ⅆ)+nSsAzTsY2!^%)pGshX4;u>bTFlR%EN~%xK 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%0A*!u=`CC}+KPHsLX6^2!M6mBUo-B6U3vCEOD|H5u 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

}jf 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 z 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 z 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�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Π_tRq3Tik!8&SbAn3Lt~-oahSF{<%x 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 lKzTcBBU1!v8Njmv`-~F%dd+*=>cGcSFRGnG7 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%0DBiS2%O=Y6>#c)F|nW4`$|{j%dbQ~L4n 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

Tb{^jKJM2Q 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 Kws`CY9{E2StDmO; diff --git a/app/libs/xstream-1.4.7.jar b/app/libs/xstream-1.4.7.jar deleted file mode 100644 index ea4b6a2816698260acf78555d655cfaa01555413..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531571 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

t#yMz%Fl8dGVqC>{4HvNyDy6#~J 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

@dT-Xs%q4>@5(6PQ>TD>j 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�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 ?La6 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 z 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

SyntaxHighlighter
version 2.1.382 (June 24 2010)
If you like this script, please donate to keep development active!
JavaScript code syntax highlighter.
Copyright 2004-2009 Alex Gorbatchev.
'},debug:false},vars:{discoveredBrushes:null,spaceWidth:null,printFrame:null,highlighters:{}},brushes:{},regexLib:{multiLineCComments:/\/\*[\s\S]*?\*\//gm,singleLineCComments:/\/\/.*$/gm,singleLinePerlComments:/#.*$/gm,doubleQuotedString:/"([^\\"\n]|\\.)*"/g,singleQuotedString:/'([^\\'\n]|\\.)*'/g,multiLineDoubleQuotedString:/"([^\\"]|\\.)*"/g,multiLineSingleQuotedString:/'([^\\']|\\.)*'/g,xmlComments:/(<|<)!--[\s\S]*?--(>|>)/gm,url:/<\w+:\/\/[\w-.\/?%&=@:;]*>|\w+:\/\/[\w-.\/?%&=@:;]*/g,phpScriptTags:{left:/(<|<)\?=?/g,right:/\?(>|>)/g},aspScriptTags:{left:/(<|<)%=?/g,right:/%(>|>)/g},scriptScriptTags:{left:/(<|<)\s*script.*?(>|>)/gi,right:/(<|<)\/\s*script\s*(>|>)/gi}},toolbar:{create:function(d){var h=document.createElement("DIV"),b=a.toolbar.items;h.className="toolbar";for(var c in b){var f=b[c],g=new f(d),e=g.create();d.toolbarCommands[c]=g;if(e==null){continue}if(typeof(e)=="string"){e=a.toolbar.createButton(e,d.id,c)}e.className+="item "+c;h.appendChild(e)}return h},createButton:function(f,c,g){var d=document.createElement("a"),i=d.style,e=a.config,h=e.toolbarItemWidth,b=e.toolbarItemHeight;d.href="#"+g;d.title=f;d.highlighterId=c;d.commandName=g;d.innerHTML=f;if(isNaN(h)==false){i.width=h+"px"}if(isNaN(b)==false){i.height=b+"px"}d.onclick=function(j){try{a.toolbar.executeCommand(this,j||window.event,this.highlighterId,this.commandName)}catch(j){a.utils.alert(j.message)}return false};return d},executeCommand:function(f,g,b,e,d){var c=a.vars.highlighters[b],h;if(c==null||(h=c.toolbarCommands[e])==null){return null}return h.execute(f,g,d)},items:{expandSource:function(b){this.create=function(){if(b.getParam("collapse")!=true){return}return a.config.strings.expandSource};this.execute=function(d,e,c){var f=b.div;d.parentNode.removeChild(d);f.className=f.className.replace("collapsed","")}},viewSource:function(b){this.create=function(){return a.config.strings.viewSource};this.execute=function(d,g,c){var f=a.utils.fixInputString(b.originalCode).replace(/"+f+"");e.document.close()}},copyToClipboard:function(d){var e,c,b=d.id;this.create=function(){var g=a.config;if(g.clipboardSwf==null){return null}function l(o){var m="";for(var n in o){m+=""}return m}function f(o){var m="";for(var n in o){m+=" "+n+"='"+o[n]+"'"}return m}var k={width:g.toolbarItemWidth,height:g.toolbarItemHeight,id:b+"_clipboard",type:"application/x-shockwave-flash",title:a.config.strings.copyToClipboard},j={allowScriptAccess:"always",wmode:"transparent",flashVars:"highlighterId="+b,menu:"false"},i=g.clipboardSwf,h;if(/msie/i.test(navigator.userAgent)){h=""+l(j)+l({movie:i})+""}else{h=""}e=document.createElement("div");e.innerHTML=h;return e};this.execute=function(g,i,f){var j=f.command;switch(j){case"get":var h=a.utils.unindent(a.utils.fixInputString(d.originalCode).replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&")); - if(window.clipboardData){window.clipboardData.setData("text",h)}else{return a.utils.unindent(h)}case"ok":a.utils.alert(a.config.strings.copyToClipboardConfirmation);break;case"error":a.utils.alert(f.message);break}}},printSource:function(b){this.create=function(){return a.config.strings.print};this.execute=function(e,g,d){var f=document.createElement("IFRAME"),h=null;if(a.vars.printFrame!=null){document.body.removeChild(a.vars.printFrame)}a.vars.printFrame=f;f.style.cssText="position:absolute;width:0px;height:0px;left:-500px;top:-500px;";document.body.appendChild(f);h=f.contentWindow.document;c(h,window.document);h.write('
'+b.div.innerHTML+"
");h.close();f.contentWindow.focus();f.contentWindow.print();function c(j,m){var k=m.getElementsByTagName("link");for(var l=0;l')}}}}},about:function(b){this.create=function(){return a.config.strings.help};this.execute=function(c,e){var d=a.utils.popup("","_blank",500,250,"scrollbars=0"),f=d.document;f.write(a.config.strings.aboutDialog);f.close();d.focus()}}}},utils:{indexOf:function(e,b,d){d=Math.max(d||0,0);for(var c=d;c(.*?))\\]$"),f=new XRegExp("(?[\\w-]+)"+"\\s*:\\s*"+"(?"+"[\\w-%#]+|"+"\\[.*?\\]|"+'".*?"|'+"'.*?'"+")\\s*;?","g");while((d=f.exec(h))!=null){var g=d.value.replace(/^['"]|['"]$/g,"");if(g!=null&&e.test(g)){var b=e.exec(g);g=b.values.length>0?b.values.split(/\s*,\s*/):[]}c[d.name]=g}return c},decorate:function(c,b){if(c==null||c.length==0||c=="\n"){return c}c=c.replace(/'+d+""})}return c},padNumber:function(d,c){var b=d.toString();while(b.length",e="";c.innerHTML=i+'syntaxhighlighter">'+i+'lines">'+i+'line">'+i+"content"+'"> '+e+e+g+g+g+g;f.appendChild(c);h=document.getElementById(d);if(/opera/i.test(navigator.userAgent)){var b=window.getComputedStyle(h,null);j=parseInt(b.getPropertyValue("width"))}else{j=h.offsetWidth}f.removeChild(c);return j},processTabs:function(d,e){var c="";for(var b=0;b|<br\s*\/?>/gi;if(a.config.bloggerMode==true){c=c.replace(b,"\n")}if(a.config.stripBrs==true){c=c.replace(b,"")}return c},trim:function(b){return b.replace(/^\s+|\s+$/g,"")},unindent:function(j){var c=a.utils.fixInputString(j).split("\n"),h=new Array(),f=/^\s*/,e=1000;for(var d=0;d0;d++){var b=c[d];if(a.utils.trim(b).length==0){continue}var g=f.exec(b);if(g==null){return j}e=Math.min(g[0].length,e)}if(e>0){for(var d=0;db.index){return 1}else{if(c.lengthb.length){return 1 -}}}}return 0},getMatches:function(f,g){function h(i,j){return[new a.Match(i[0],i.index,j.css)]}var d=0,c=null,b=[],e=g.func?g.func:h;while((c=g.regex.exec(f))!=null){b=b.concat(e(c,g))}return b},processUrls:function(d){var b="<",c=">";return d.replace(a.regexLib.url,function(e){var g="",f="";if(e.indexOf(b)==0){f=b;e=e.substring(b.length)}if(e.indexOf(c)==e.length-c.length){e=e.substring(0,e.length-c.length);g=c}return f+''+e+""+g})},getSyntaxHighlighterScriptTags:function(){var c=document.getElementsByTagName("script"),b=[];for(var d=0;dd){break}else{if(g.index==b.index&&g.length>b.length){this.matches[e]=null}else{if(g.index>=b.index&&g.index'+""+""+(f?'":"")+'"+""+"
'+d+"'+(j!=null?''+j.replace(" "," ")+"":"")+o+"
"+""}return b},processMatches:function(b,h){var j=0,l="",c=a.utils.decorate,k=this.getParam("brush-name","");function e(m){var i=m?(m.brushName||k):k;return i?i+" ":""}for(var f=0;f"+b.left.source+")"+"(?.*?)"+"(?"+b.right.source+")","sgi")}}};return a}()}if(!window.XRegExp){(function(){var e={exec:RegExp.prototype.exec,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},d={part:/(?:[^\\([#\s.]+|\\(?!k<[\w$]+>|[pP]{[^}]+})[\S\s]?|\((?=\?(?!#|<[\w$]+>)))+|(\()(?:\?(?:(#)[^)]*\)|<([$\w]+)>))?|\\(?:k<([\w$]+)>|[pP]{([^}]+)})|(\[\^?)|([\S\s])/g,replaceVar:/(?:[^$]+|\$(?![1-9$&`']|{[$\w]+}))+|\$(?:([1-9]\d*|[$&`'])|{([$\w]+)})/g,extended:/^(?:\s+|#.*)+/,quantifier:/^(?:[?*+]|{\d+(?:,\d*)?})/,classLeft:/&&\[\^?/g,classRight:/]/g},b=function(j,g,h){for(var f=h||0;f-1,k=i.indexOf("x")>-1,p=false,r=[],h=[],g=d.part,l,j,n,m,q;g.lastIndex=0;while(l=e.exec.call(g,o)){if(l[2]){if(!d.quantifier.test(o.slice(g.lastIndex))){h.push("(?:)")}}else{if(l[1]){r.push(l[3]||null);if(l[3]){p=true}h.push("(")}else{if(l[4]){m=b(r,l[4]);h.push(m>-1?"\\"+(m+1)+(isNaN(o.charAt(g.lastIndex))?"":"(?:)"):l[0])}else{if(l[5]){h.push(a.unicode?a.unicode.get(l[5],l[0].charAt(1)==="P"):l[0])}else{if(l[6]){if(o.charAt(g.lastIndex)==="]"){h.push(l[6]==="["?"(?!)":"[\\S\\s]");g.lastIndex++}else{j=XRegExp.matchRecursive("&&"+o.slice(l.index),d.classLeft,d.classRight,"",{escapeChar:"\\"})[0];h.push(l[6]+j+"]");g.lastIndex+=j.length+1}}else{if(l[7]){if(f&&l[7]==="."){h.push("[\\S\\s]")}else{if(k&&d.extended.test(l[7])){n=e.exec.call(d.extended,o.slice(g.lastIndex-1))[0].length;if(!d.quantifier.test(o.slice(g.lastIndex-1+n))){h.push("(?:)")}g.lastIndex+=n-1}else{h.push(l[7])}}}else{h.push(l[0])}}}}}}}q=RegExp(h.join(""),e.replace.call(i,/[sx]+/g,""));q._x={source:o,captureNames:p?r:null};return q};XRegExp.addPlugin=function(f,g){a[f]=g};RegExp.prototype.exec=function(k){var h=e.exec.call(this,k),g,j,f;if(h){if(c&&h.length>1){f=new RegExp("^"+this.source+"$(?!\\s)",this.getNativeFlags());e.replace.call(h[0],f,function(){for(j=1;j(h.index+h[0].length)){this.lastIndex--}}return h}})()}RegExp.prototype.getNativeFlags=function(){return(this.global?"g":"")+(this.ignoreCase?"i":"")+(this.multiline?"m":"")+(this.extended?"x":"")+(this.sticky?"y":"")};RegExp.prototype.addFlags=function(a){var b=new XRegExp(this.source,(a||"")+this.getNativeFlags());if(this._x){b._x={source:this._x.source,captureNames:this._x.captureNames?this._x.captureNames.slice(0):null}}return b};RegExp.prototype.call=function(a,b){return this.exec(b)};RegExp.prototype.apply=function(b,a){return this.exec(a[0])};XRegExp.cache=function(c,a){var b="/"+c+"/"+(a||"");return XRegExp.cache[b]||(XRegExp.cache[b]=new XRegExp(c,a))};XRegExp.escape=function(a){return a.replace(/[-[\]{}()*+?.\\^$|,#\s]/g,"\\$&")};XRegExp.matchRecursive=function(p,d,s,f,b){var b=b||{},v=b.escapeChar,k=b.valueNames,f=f||"",q=f.indexOf("g")>-1,c=f.indexOf("i")>-1,h=f.indexOf("m")>-1,u=f.indexOf("y")>-1,f=f.replace(/y/g,""),d=d instanceof RegExp?(d.global?d:d.addFlags("g")):new XRegExp(d,"g"+f),s=s instanceof RegExp?(s.global?s:s.addFlags("g")):new XRegExp(s,"g"+f),i=[],a=0,j=0,n=0,l=0,m,e,o,r,g,t;if(v){if(v.length>1){throw SyntaxError("can't supply more than one escape character") -}if(h){throw TypeError("can't supply escape character when using the multiline flag")}g=XRegExp.escape(v);t=new RegExp("^(?:"+g+"[\\S\\s]|(?:(?!"+d.source+"|"+s.source+")[^"+g+"])+)+",c?"i":"")}while(true){d.lastIndex=s.lastIndex=n+(v?(t.exec(p.slice(n))||[""])[0].length:0);o=d.exec(p);r=s.exec(p);if(o&&r){if(o.index<=r.index){r=null}else{o=null}}if(o||r){j=(o||r).index;n=(o?d:s).lastIndex}else{if(!a){break}}if(u&&!a&&j>l){break}if(o){if(!a++){m=j;e=n}}else{if(r&&a){if(!--a){if(k){if(k[0]&&m>l){i.push([k[0],p.slice(l,m),l,m])}if(k[1]){i.push([k[1],p.slice(m,e),m,e])}if(k[2]){i.push([k[2],p.slice(e,j),e,j])}if(k[3]){i.push([k[3],p.slice(j,n),j,n])}}else{i.push(p.slice(e,j))}l=n;if(!q){break}}}else{d.lastIndex=s.lastIndex=0;throw Error("subject data contains unbalanced delimiters")}}if(j===n){n++}}if(q&&!u&&k&&k[0]&&p.length>l){i.push([k[0],p.slice(l),l,p.length])}d.lastIndex=s.lastIndex=0;return i};SyntaxHighlighter.brushes.AS3=function(){var b="class interface function package";var a="-Infinity ...rest Array as AS3 Boolean break case catch const continue Date decodeURI "+"decodeURIComponent default delete do dynamic each else encodeURI encodeURIComponent escape "+"extends false final finally flash_proxy for get if implements import in include Infinity "+"instanceof int internal is isFinite isNaN isXMLName label namespace NaN native new null "+"Null Number Object object_proxy override parseFloat parseInt private protected public "+"return set static String super switch this throw true try typeof uint undefined unescape "+"use void while with";this.regexList=[{regex:SyntaxHighlighter.regexLib.singleLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.multiLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:/\b([\d]+(\.[\d]+)?|0x[a-f0-9]+)\b/gi,css:"value"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"color3"},{regex:new RegExp(this.getKeywords(a),"gm"),css:"keyword"},{regex:new RegExp("var","gm"),css:"variable"},{regex:new RegExp("trace","gm"),css:"color1"}];this.forHtmlScript(SyntaxHighlighter.regexLib.scriptScriptTags)};SyntaxHighlighter.brushes.AS3.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.AS3.aliases=["actionscript3","as3"];SyntaxHighlighter.brushes.Bash=function(){var b="if fi then elif else for do done until while break continue case function return in eq ne gt lt ge le";var a="alias apropos awk basename bash bc bg builtin bzip2 cal cat cd cfdisk chgrp chmod chown chroot"+"cksum clear cmp comm command cp cron crontab csplit cut date dc dd ddrescue declare df "+"diff diff3 dig dir dircolors dirname dirs du echo egrep eject enable env ethtool eval "+"exec exit expand export expr false fdformat fdisk fg fgrep file find fmt fold format "+"free fsck ftp gawk getopts grep groups gzip hash head history hostname id ifconfig "+"import install join kill less let ln local locate logname logout look lpc lpr lprint "+"lprintd lprintq lprm ls lsof make man mkdir mkfifo mkisofs mknod more mount mtools "+"mv netstat nice nl nohup nslookup open op passwd paste pathchk ping popd pr printcap "+"printenv printf ps pushd pwd quota quotacheck quotactl ram rcp read readonly renice "+"remsync rm rmdir rsync screen scp sdiff sed select seq set sftp shift shopt shutdown "+"sleep sort source split ssh strace su sudo sum symlink sync tail tar tee test time "+"times touch top traceroute trap tr true tsort tty type ulimit umask umount unalias "+"uname unexpand uniq units unset unshar useradd usermod users uuencode uudecode v vdir "+"vi watch wc whereis which who whoami Wget xargs yes";this.findMatches=function(d,c){c=c.replace(/>/g,">").replace(/</g,"<");this.code=c;return SyntaxHighlighter.Highlighter.prototype.findMatches.apply(this,[d,c])};this.regexList=[{regex:SyntaxHighlighter.regexLib.singleLinePerlComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"keyword"},{regex:new RegExp(this.getKeywords(a),"gm"),css:"functions"}]};SyntaxHighlighter.brushes.Bash.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Bash.aliases=["bash","shell"];SyntaxHighlighter.brushes.ColdFusion=function(){var b="Abs ACos AddSOAPRequestHeader AddSOAPResponseHeader AjaxLink AjaxOnLoad ArrayAppend ArrayAvg ArrayClear ArrayDeleteAt "+"ArrayInsertAt ArrayIsDefined ArrayIsEmpty ArrayLen ArrayMax ArrayMin ArraySet ArraySort ArraySum ArraySwap ArrayToList "+"Asc ASin Atn BinaryDecode BinaryEncode BitAnd BitMaskClear BitMaskRead BitMaskSet BitNot BitOr BitSHLN BitSHRN BitXor "+"Ceiling CharsetDecode CharsetEncode Chr CJustify Compare CompareNoCase Cos CreateDate CreateDateTime CreateObject "+"CreateODBCDate CreateODBCDateTime CreateODBCTime CreateTime CreateTimeSpan CreateUUID DateAdd DateCompare DateConvert "+"DateDiff DateFormat DatePart Day DayOfWeek DayOfWeekAsString DayOfYear DaysInMonth DaysInYear DE DecimalFormat DecrementValue "+"Decrypt DecryptBinary DeleteClientVariable DeserializeJSON DirectoryExists DollarFormat DotNetToCFType Duplicate Encrypt "+"EncryptBinary Evaluate Exp ExpandPath FileClose FileCopy FileDelete FileExists FileIsEOF FileMove FileOpen FileRead "+"FileReadBinary FileReadLine FileSetAccessMode FileSetAttribute FileSetLastModified FileWrite Find FindNoCase FindOneOf "+"FirstDayOfMonth Fix FormatBaseN GenerateSecretKey GetAuthUser GetBaseTagData GetBaseTagList GetBaseTemplatePath "+"GetClientVariablesList GetComponentMetaData GetContextRoot GetCurrentTemplatePath GetDirectoryFromPath GetEncoding "+"GetException GetFileFromPath GetFileInfo GetFunctionList GetGatewayHelper GetHttpRequestData GetHttpTimeString "+"GetK2ServerDocCount GetK2ServerDocCountLimit GetLocale GetLocaleDisplayName GetLocalHostIP GetMetaData GetMetricData "+"GetPageContext GetPrinterInfo GetProfileSections GetProfileString GetReadableImageFormats GetSOAPRequest GetSOAPRequestHeader "+"GetSOAPResponse GetSOAPResponseHeader GetTempDirectory GetTempFile GetTemplatePath GetTickCount GetTimeZoneInfo GetToken "+"GetUserRoles GetWriteableImageFormats Hash Hour HTMLCodeFormat HTMLEditFormat IIf ImageAddBorder ImageBlur ImageClearRect "+"ImageCopy ImageCrop ImageDrawArc ImageDrawBeveledRect ImageDrawCubicCurve ImageDrawLine ImageDrawLines ImageDrawOval "+"ImageDrawPoint ImageDrawQuadraticCurve ImageDrawRect ImageDrawRoundRect ImageDrawText ImageFlip ImageGetBlob ImageGetBufferedImage "+"ImageGetEXIFTag ImageGetHeight ImageGetIPTCTag ImageGetWidth ImageGrayscale ImageInfo ImageNegative ImageNew ImageOverlay ImagePaste "+"ImageRead ImageReadBase64 ImageResize ImageRotate ImageRotateDrawingAxis ImageScaleToFit ImageSetAntialiasing ImageSetBackgroundColor "+"ImageSetDrawingColor ImageSetDrawingStroke ImageSetDrawingTransparency ImageSharpen ImageShear ImageShearDrawingAxis ImageTranslate "+"ImageTranslateDrawingAxis ImageWrite ImageWriteBase64 ImageXORDrawingMode IncrementValue InputBaseN Insert Int IsArray IsBinary "+"IsBoolean IsCustomFunction IsDate IsDDX IsDebugMode IsDefined IsImage IsImageFile IsInstanceOf IsJSON IsLeapYear IsLocalHost "+"IsNumeric IsNumericDate IsObject IsPDFFile IsPDFObject IsQuery IsSimpleValue IsSOAPRequest IsStruct IsUserInAnyRole IsUserInRole "+"IsUserLoggedIn IsValid IsWDDX IsXML IsXmlAttribute IsXmlDoc IsXmlElem IsXmlNode IsXmlRoot JavaCast JSStringFormat LCase Left Len "+"ListAppend ListChangeDelims ListContains ListContainsNoCase ListDeleteAt ListFind ListFindNoCase ListFirst ListGetAt ListInsertAt "+"ListLast ListLen ListPrepend ListQualify ListRest ListSetAt ListSort ListToArray ListValueCount ListValueCountNoCase LJustify Log "+"Log10 LSCurrencyFormat LSDateFormat LSEuroCurrencyFormat LSIsCurrency LSIsDate LSIsNumeric LSNumberFormat LSParseCurrency LSParseDateTime "+"LSParseEuroCurrency LSParseNumber LSTimeFormat LTrim Max Mid Min Minute Month MonthAsString Now NumberFormat ParagraphFormat ParseDateTime "+"Pi PrecisionEvaluate PreserveSingleQuotes Quarter QueryAddColumn QueryAddRow QueryConvertForGrid QueryNew QuerySetCell QuotedValueList Rand "+"Randomize RandRange REFind REFindNoCase ReleaseComObject REMatch REMatchNoCase RemoveChars RepeatString Replace ReplaceList ReplaceNoCase "+"REReplace REReplaceNoCase Reverse Right RJustify Round RTrim Second SendGatewayMessage SerializeJSON SetEncoding SetLocale SetProfileString "+"SetVariable Sgn Sin Sleep SpanExcluding SpanIncluding Sqr StripCR StructAppend StructClear StructCopy StructCount StructDelete StructFind "+"StructFindKey StructFindValue StructGet StructInsert StructIsEmpty StructKeyArray StructKeyExists StructKeyList StructKeyList StructNew "+"StructSort StructUpdate Tan TimeFormat ToBase64 ToBinary ToScript ToString Trim UCase URLDecode URLEncodedFormat URLSessionFormat Val "+"ValueList VerifyClient Week Wrap Wrap WriteOutput XmlChildPos XmlElemNew XmlFormat XmlGetNodeType XmlNew XmlParse XmlSearch XmlTransform "+"XmlValidate Year YesNoFormat"; - var c="cfabort cfajaximport cfajaxproxy cfapplet cfapplication cfargument cfassociate cfbreak cfcache cfcalendar "+"cfcase cfcatch cfchart cfchartdata cfchartseries cfcol cfcollection cfcomponent cfcontent cfcookie cfdbinfo "+"cfdefaultcase cfdirectory cfdiv cfdocument cfdocumentitem cfdocumentsection cfdump cfelse cfelseif cferror "+"cfexchangecalendar cfexchangeconnection cfexchangecontact cfexchangefilter cfexchangemail cfexchangetask "+"cfexecute cfexit cffeed cffile cfflush cfform cfformgroup cfformitem cfftp cffunction cfgrid cfgridcolumn "+"cfgridrow cfgridupdate cfheader cfhtmlhead cfhttp cfhttpparam cfif cfimage cfimport cfinclude cfindex "+"cfinput cfinsert cfinterface cfinvoke cfinvokeargument cflayout cflayoutarea cfldap cflocation cflock cflog "+"cflogin cfloginuser cflogout cfloop cfmail cfmailparam cfmailpart cfmenu cfmenuitem cfmodule cfNTauthenticate "+"cfobject cfobjectcache cfoutput cfparam cfpdf cfpdfform cfpdfformparam cfpdfparam cfpdfsubform cfpod cfpop "+"cfpresentation cfpresentationslide cfpresenter cfprint cfprocessingdirective cfprocparam cfprocresult "+"cfproperty cfquery cfqueryparam cfregistry cfreport cfreportparam cfrethrow cfreturn cfsavecontent cfschedule "+"cfscript cfsearch cfselect cfset cfsetting cfsilent cfslider cfsprydataset cfstoredproc cfswitch cftable "+"cftextarea cfthread cfthrow cftimer cftooltip cftrace cftransaction cftree cftreeitem cftry cfupdate cfwddx "+"cfwindow cfxml cfzip cfzipparam";var a="all and any between cross in join like not null or outer some";this.regexList=[{regex:new RegExp("--(.*)$","gm"),css:"comments"},{regex:SyntaxHighlighter.regexLib.xmlComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:new RegExp(this.getKeywords(b),"gmi"),css:"functions"},{regex:new RegExp(this.getKeywords(a),"gmi"),css:"color1"},{regex:new RegExp(this.getKeywords(c),"gmi"),css:"keyword"}]};SyntaxHighlighter.brushes.ColdFusion.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.ColdFusion.aliases=["coldfusion","cf"];SyntaxHighlighter.brushes.Cpp=function(){var c="ATOM BOOL BOOLEAN BYTE CHAR COLORREF DWORD DWORDLONG DWORD_PTR "+"DWORD32 DWORD64 FLOAT HACCEL HALF_PTR HANDLE HBITMAP HBRUSH "+"HCOLORSPACE HCONV HCONVLIST HCURSOR HDC HDDEDATA HDESK HDROP HDWP "+"HENHMETAFILE HFILE HFONT HGDIOBJ HGLOBAL HHOOK HICON HINSTANCE HKEY "+"HKL HLOCAL HMENU HMETAFILE HMODULE HMONITOR HPALETTE HPEN HRESULT "+"HRGN HRSRC HSZ HWINSTA HWND INT INT_PTR INT32 INT64 LANGID LCID LCTYPE "+"LGRPID LONG LONGLONG LONG_PTR LONG32 LONG64 LPARAM LPBOOL LPBYTE LPCOLORREF "+"LPCSTR LPCTSTR LPCVOID LPCWSTR LPDWORD LPHANDLE LPINT LPLONG LPSTR LPTSTR "+"LPVOID LPWORD LPWSTR LRESULT PBOOL PBOOLEAN PBYTE PCHAR PCSTR PCTSTR PCWSTR "+"PDWORDLONG PDWORD_PTR PDWORD32 PDWORD64 PFLOAT PHALF_PTR PHANDLE PHKEY PINT "+"PINT_PTR PINT32 PINT64 PLCID PLONG PLONGLONG PLONG_PTR PLONG32 PLONG64 POINTER_32 "+"POINTER_64 PSHORT PSIZE_T PSSIZE_T PSTR PTBYTE PTCHAR PTSTR PUCHAR PUHALF_PTR "+"PUINT PUINT_PTR PUINT32 PUINT64 PULONG PULONGLONG PULONG_PTR PULONG32 PULONG64 "+"PUSHORT PVOID PWCHAR PWORD PWSTR SC_HANDLE SC_LOCK SERVICE_STATUS_HANDLE SHORT "+"SIZE_T SSIZE_T TBYTE TCHAR UCHAR UHALF_PTR UINT UINT_PTR UINT32 UINT64 ULONG "+"ULONGLONG ULONG_PTR ULONG32 ULONG64 USHORT USN VOID WCHAR WORD WPARAM WPARAM WPARAM "+"char bool short int __int32 __int64 __int8 __int16 long float double __wchar_t "+"clock_t _complex _dev_t _diskfree_t div_t ldiv_t _exception _EXCEPTION_POINTERS "+"FILE _finddata_t _finddatai64_t _wfinddata_t _wfinddatai64_t __finddata64_t "+"__wfinddata64_t _FPIEEE_RECORD fpos_t _HEAPINFO _HFILE lconv intptr_t "+"jmp_buf mbstate_t _off_t _onexit_t _PNH ptrdiff_t _purecall_handler "+"sig_atomic_t size_t _stat __stat64 _stati64 terminate_function "+"time_t __time64_t _timeb __timeb64 tm uintptr_t _utimbuf "+"va_list wchar_t wctrans_t wctype_t wint_t signed";var a="break case catch class const __finally __exception __try "+"const_cast continue private public protected __declspec "+"default delete deprecated dllexport dllimport do dynamic_cast "+"else enum explicit extern if for friend goto inline "+"mutable naked namespace new noinline noreturn nothrow "+"register reinterpret_cast return selectany "+"sizeof static static_cast struct switch template this "+"thread throw true false try typedef typeid typename union "+"using uuid virtual void volatile whcar_t while";var b="assert isalnum isalpha iscntrl isdigit isgraph islower isprint"+"ispunct isspace isupper isxdigit tolower toupper errno localeconv "+"setlocale acos asin atan atan2 ceil cos cosh exp fabs floor fmod "+"frexp ldexp log log10 modf pow sin sinh sqrt tan tanh jmp_buf "+"longjmp setjmp raise signal sig_atomic_t va_arg va_end va_start "+"clearerr fclose feof ferror fflush fgetc fgetpos fgets fopen "+"fprintf fputc fputs fread freopen fscanf fseek fsetpos ftell "+"fwrite getc getchar gets perror printf putc putchar puts remove "+"rename rewind scanf setbuf setvbuf sprintf sscanf tmpfile tmpnam "+"ungetc vfprintf vprintf vsprintf abort abs atexit atof atoi atol "+"bsearch calloc div exit free getenv labs ldiv malloc mblen mbstowcs "+"mbtowc qsort rand realloc srand strtod strtol strtoul system "+"wcstombs wctomb memchr memcmp memcpy memmove memset strcat strchr "+"strcmp strcoll strcpy strcspn strerror strlen strncat strncmp "+"strncpy strpbrk strrchr strspn strstr strtok strxfrm asctime "+"clock ctime difftime gmtime localtime mktime strftime time"; - this.regexList=[{regex:SyntaxHighlighter.regexLib.singleLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.multiLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:/^ *#.*/gm,css:"preprocessor"},{regex:new RegExp(this.getKeywords(c),"gm"),css:"color1 bold"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"functions bold"},{regex:new RegExp(this.getKeywords(a),"gm"),css:"keyword bold"}]};SyntaxHighlighter.brushes.Cpp.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Cpp.aliases=["cpp","c"];SyntaxHighlighter.brushes.CSharp=function(){var b="abstract as base bool break byte case catch char checked class const "+"continue decimal default delegate do double else enum event explicit "+"extern false finally fixed float for foreach get goto if implicit in int "+"interface internal is lock long namespace new null object operator out "+"override params private protected public readonly ref return sbyte sealed set "+"short sizeof stackalloc static string struct switch this throw true try "+"typeof uint ulong unchecked unsafe ushort using virtual void while";function a(c,e){var d=(c[0].indexOf("///")==0)?"color1":"comments";return[new SyntaxHighlighter.Match(c[0],c.index,d)]}this.regexList=[{regex:SyntaxHighlighter.regexLib.singleLineCComments,func:a},{regex:SyntaxHighlighter.regexLib.multiLineCComments,css:"comments"},{regex:/@"(?:[^"]|"")*"/g,css:"string"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:/^\s*#.*/gm,css:"preprocessor"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"keyword"},{regex:/\bpartial(?=\s+(?:class|interface|struct)\b)/g,css:"keyword"},{regex:/\byield(?=\s+(?:return|break)\b)/g,css:"keyword"}];this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags)};SyntaxHighlighter.brushes.CSharp.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.CSharp.aliases=["c#","c-sharp","csharp"];SyntaxHighlighter.brushes.CSS=function(){function a(f){return"\\b([a-z_]|)"+f.replace(/ /g,"(?=:)\\b|\\b([a-z_\\*]|\\*|)")+"(?=:)\\b"}function c(f){return"\\b"+f.replace(/ /g,"(?!-)(?!:)\\b|\\b()")+":\\b"}var d="ascent azimuth background-attachment background-color background-image background-position "+"background-repeat background baseline bbox border-collapse border-color border-spacing border-style border-top "+"border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color "+"border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width "+"border-bottom-width border-left-width border-width border bottom cap-height caption-side centerline clear clip color "+"content counter-increment counter-reset cue-after cue-before cue cursor definition-src descent direction display "+"elevation empty-cells float font-size-adjust font-family font-size font-stretch font-style font-variant font-weight font "+"height left letter-spacing line-height list-style-image list-style-position list-style-type list-style margin-top "+"margin-right margin-bottom margin-left margin marker-offset marks mathline max-height max-width min-height min-width orphans "+"outline-color outline-style outline-width outline overflow padding-top padding-right padding-bottom padding-left padding page "+"page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position "+"quotes right richness size slope src speak-header speak-numeral speak-punctuation speak speech-rate stemh stemv stress "+"table-layout text-align top text-decoration text-indent text-shadow text-transform unicode-bidi unicode-range units-per-em "+"vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index";var b="above absolute all always aqua armenian attr aural auto avoid baseline behind below bidi-override black blink block blue bold bolder "+"both bottom braille capitalize caption center center-left center-right circle close-quote code collapse compact condensed "+"continuous counter counters crop cross crosshair cursive dashed decimal decimal-leading-zero default digits disc dotted double "+"embed embossed e-resize expanded extra-condensed extra-expanded fantasy far-left far-right fast faster fixed format fuchsia "+"gray green groove handheld hebrew help hidden hide high higher icon inline-table inline inset inside invert italic "+"justify landscape large larger left-side left leftwards level lighter lime line-through list-item local loud lower-alpha "+"lowercase lower-greek lower-latin lower-roman lower low ltr marker maroon medium message-box middle mix move narrower "+"navy ne-resize no-close-quote none no-open-quote no-repeat normal nowrap n-resize nw-resize oblique olive once open-quote outset "+"outside overline pointer portrait pre print projection purple red relative repeat repeat-x repeat-y rgb ridge right right-side "+"rightwards rtl run-in screen scroll semi-condensed semi-expanded separate se-resize show silent silver slower slow "+"small small-caps small-caption smaller soft solid speech spell-out square s-resize static status-bar sub super sw-resize "+"table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group teal "+"text-bottom text-top thick thin top transparent tty tv ultra-condensed ultra-expanded underline upper-alpha uppercase upper-latin "+"upper-roman url visible wait white wider w-resize x-fast x-high x-large x-loud x-low x-slow x-small x-soft xx-large xx-small yellow"; - var e="[mM]onospace [tT]ahoma [vV]erdana [aA]rial [hH]elvetica [sS]ans-serif [sS]erif [cC]ourier mono sans serif";this.regexList=[{regex:SyntaxHighlighter.regexLib.multiLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:/\#[a-fA-F0-9]{3,6}/g,css:"value"},{regex:/(-?\d+)(\.\d+)?(px|em|pt|\:|\%|)/g,css:"value"},{regex:/!important/g,css:"color3"},{regex:new RegExp(a(d),"gm"),css:"keyword"},{regex:new RegExp(c(b),"g"),css:"value"},{regex:new RegExp(this.getKeywords(e),"g"),css:"color1"}];this.forHtmlScript({left:/(<|<)\s*style.*?(>|>)/gi,right:/(<|<)\/\s*style\s*(>|>)/gi})};SyntaxHighlighter.brushes.CSS.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.CSS.aliases=["css"];SyntaxHighlighter.brushes.Delphi=function(){var a="abs addr and ansichar ansistring array as asm begin boolean byte cardinal "+"case char class comp const constructor currency destructor div do double "+"downto else end except exports extended false file finalization finally "+"for function goto if implementation in inherited int64 initialization "+"integer interface is label library longint longword mod nil not object "+"of on or packed pansichar pansistring pchar pcurrency pdatetime pextended "+"pint64 pointer private procedure program property pshortstring pstring "+"pvariant pwidechar pwidestring protected public published raise real real48 "+"record repeat set shl shortint shortstring shr single smallint string then "+"threadvar to true try type unit until uses val var varirnt while widechar "+"widestring with word write writeln xor";this.regexList=[{regex:/\(\*[\s\S]*?\*\)/gm,css:"comments"},{regex:/{(?!\$)[\s\S]*?}/gm,css:"comments"},{regex:SyntaxHighlighter.regexLib.singleLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:/\{\$[a-zA-Z]+ .+\}/g,css:"color1"},{regex:/\b[\d\.]+\b/g,css:"value"},{regex:/\$[a-zA-Z0-9]+\b/g,css:"value"},{regex:new RegExp(this.getKeywords(a),"gmi"),css:"keyword"}]};SyntaxHighlighter.brushes.Delphi.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Delphi.aliases=["delphi","pascal","pas"];SyntaxHighlighter.brushes.Erlang=function(){var a="after and andalso band begin bnot bor bsl bsr bxor "+"case catch cond div end fun if let not of or orelse "+"query receive rem try when xor"+" module export import define";this.regexList=[{regex:new RegExp("[A-Z][A-Za-z0-9_]+","g"),css:"constants"},{regex:new RegExp("\\%.+","gm"),css:"comments"},{regex:new RegExp("\\?[A-Za-z0-9_]+","g"),css:"preprocessor"},{regex:new RegExp("[a-z0-9_]+:[a-z0-9_]+","g"),css:"functions"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:new RegExp(this.getKeywords(a),"gm"),css:"keyword"}]};SyntaxHighlighter.brushes.Erlang.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Erlang.aliases=["erl","erlang"];SyntaxHighlighter.brushes.Groovy=function(){var d="as assert break case catch class continue def default do else extends finally "+"if in implements import instanceof interface new package property return switch "+"throw throws try while public protected private static";var c="void boolean byte char short int long float double";var b="null";var a="allProperties count get size "+"collect each eachProperty eachPropertyName eachWithIndex find findAll "+"findIndexOf grep inject max min reverseEach sort "+"asImmutable asSynchronized flatten intersect join pop reverse subMap toList "+"padRight padLeft contains eachMatch toCharacter toLong toUrl tokenize "+"eachFile eachFileRecurse eachB yte eachLine readBytes readLine getText "+"splitEachLine withReader append encodeBase64 decodeBase64 filterLine "+"transformChar transformLine withOutputStream withPrintWriter withStream "+"withStreams withWriter withWriterAppend write writeLine "+"dump inspect invokeMethod print println step times upto use waitForOrKill "+"getText";this.regexList=[{regex:SyntaxHighlighter.regexLib.singleLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.multiLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:/""".*"""/g,css:"string"},{regex:new RegExp("\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b","gi"),css:"value"},{regex:new RegExp(this.getKeywords(d),"gm"),css:"keyword"},{regex:new RegExp(this.getKeywords(c),"gm"),css:"color1"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"constants"},{regex:new RegExp(this.getKeywords(a),"gm"),css:"functions"}];this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags)};SyntaxHighlighter.brushes.Groovy.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Groovy.aliases=["groovy"];SyntaxHighlighter.brushes.Java=function(){var a="abstract assert boolean break byte case catch char class const "+"continue default do double else enum extends "+"false final finally float for goto if implements import "+"instanceof int interface long native new null "+"package private protected public return "+"short static strictfp super switch synchronized this throw throws true "+"transient try void volatile while"; - this.regexList=[{regex:SyntaxHighlighter.regexLib.singleLineCComments,css:"comments"},{regex:/\/\*([^\*][\s\S]*)?\*\//gm,css:"comments"},{regex:/\/\*(?!\*\/)\*[\s\S]*?\*\//gm,css:"preprocessor"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:/\b([\d]+(\.[\d]+)?|0x[a-f0-9]+)\b/gi,css:"value"},{regex:/(?!\@interface\b)\@[\$\w]+\b/g,css:"color1"},{regex:/\@interface\b/g,css:"color2"},{regex:new RegExp(this.getKeywords(a),"gm"),css:"keyword"}];this.forHtmlScript({left:/(<|<)%[@!=]?/g,right:/%(>|>)/g})};SyntaxHighlighter.brushes.Java.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Java.aliases=["java"];SyntaxHighlighter.brushes.JavaFX=function(){var b="Boolean Byte Character Double Duration "+"Float Integer Long Number Short String Void";var a="abstract after and as assert at before bind bound break catch class "+"continue def delete else exclusive extends false finally first for from "+"function if import in indexof init insert instanceof into inverse last "+"lazy mixin mod nativearray new not null on or override package postinit "+"protected public public-init public-read replace return reverse sizeof "+"step super then this throw true try tween typeof var where while with "+"attribute let private readonly static trigger";this.regexList=[{regex:SyntaxHighlighter.regexLib.singleLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.multiLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:/(-?\.?)(\b(\d*\.?\d+|\d+\.?\d*)(e[+-]?\d+)?|0x[a-f\d]+)\b\.?/gi,css:"color2"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"variable"},{regex:new RegExp(this.getKeywords(a),"gm"),css:"keyword"}];this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags)};SyntaxHighlighter.brushes.JavaFX.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.JavaFX.aliases=["jfx","javafx"];SyntaxHighlighter.brushes.JScript=function(){var a="break case catch continue "+"default delete do else false "+"for function if in instanceof "+"new null return super switch "+"this throw true try typeof var while with";this.regexList=[{regex:SyntaxHighlighter.regexLib.singleLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.multiLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:/\s*#.*/gm,css:"preprocessor"},{regex:new RegExp(this.getKeywords(a),"gm"),css:"keyword"}];this.forHtmlScript(SyntaxHighlighter.regexLib.scriptScriptTags)};SyntaxHighlighter.brushes.JScript.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.JScript.aliases=["js","jscript","javascript"];SyntaxHighlighter.brushes.Perl=function(){var a="abs accept alarm atan2 bind binmode chdir chmod chomp chop chown chr "+"chroot close closedir connect cos crypt defined delete each endgrent "+"endhostent endnetent endprotoent endpwent endservent eof exec exists "+"exp fcntl fileno flock fork format formline getc getgrent getgrgid "+"getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr "+"getnetbyname getnetent getpeername getpgrp getppid getpriority "+"getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid "+"getservbyname getservbyport getservent getsockname getsockopt glob "+"gmtime grep hex index int ioctl join keys kill lc lcfirst length link "+"listen localtime lock log lstat map mkdir msgctl msgget msgrcv msgsnd "+"oct open opendir ord pack pipe pop pos print printf prototype push "+"quotemeta rand read readdir readline readlink readpipe recv rename "+"reset reverse rewinddir rindex rmdir scalar seek seekdir select semctl "+"semget semop send setgrent sethostent setnetent setpgrp setpriority "+"setprotoent setpwent setservent setsockopt shift shmctl shmget shmread "+"shmwrite shutdown sin sleep socket socketpair sort splice split sprintf "+"sqrt srand stat study substr symlink syscall sysopen sysread sysseek "+"system syswrite tell telldir time times tr truncate uc ucfirst umask "+"undef unlink unpack unshift utime values vec wait waitpid warn write";var b="bless caller continue dbmclose dbmopen die do dump else elsif eval exit "+"for foreach goto if import last local my next no our package redo ref "+"require return sub tie tied unless untie until use wantarray while";this.regexList=[{regex:new RegExp("#[^!].*$","gm"),css:"comments"},{regex:new RegExp("^\\s*#!.*$","gm"),css:"preprocessor"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:new RegExp("(\\$|@|%)\\w+","g"),css:"variable"},{regex:new RegExp(this.getKeywords(a),"gmi"),css:"functions"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"keyword"}];this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags) -};SyntaxHighlighter.brushes.Perl.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Perl.aliases=["perl","Perl","pl"];SyntaxHighlighter.brushes.Php=function(){var a="abs acos acosh addcslashes addslashes "+"array_change_key_case array_chunk array_combine array_count_values array_diff "+"array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_fill "+"array_filter array_flip array_intersect array_intersect_assoc array_intersect_key "+"array_intersect_uassoc array_intersect_ukey array_key_exists array_keys array_map "+"array_merge array_merge_recursive array_multisort array_pad array_pop array_product "+"array_push array_rand array_reduce array_reverse array_search array_shift "+"array_slice array_splice array_sum array_udiff array_udiff_assoc "+"array_udiff_uassoc array_uintersect array_uintersect_assoc "+"array_uintersect_uassoc array_unique array_unshift array_values array_walk "+"array_walk_recursive atan atan2 atanh base64_decode base64_encode base_convert "+"basename bcadd bccomp bcdiv bcmod bcmul bindec bindtextdomain bzclose bzcompress "+"bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite ceil chdir "+"checkdate checkdnsrr chgrp chmod chop chown chr chroot chunk_split class_exists "+"closedir closelog copy cos cosh count count_chars date decbin dechex decoct "+"deg2rad delete ebcdic2ascii echo empty end ereg ereg_replace eregi eregi_replace error_log "+"error_reporting escapeshellarg escapeshellcmd eval exec exit exp explode extension_loaded "+"feof fflush fgetc fgetcsv fgets fgetss file_exists file_get_contents file_put_contents "+"fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype "+"floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv fputs fread fscanf "+"fseek fsockopen fstat ftell ftok getallheaders getcwd getdate getenv gethostbyaddr gethostbyname "+"gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid getmyuid getopt "+"getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext "+"gettimeofday gettype glob gmdate gmmktime ini_alter ini_get ini_get_all ini_restore ini_set "+"interface_exists intval ip2long is_a is_array is_bool is_callable is_dir is_double "+"is_executable is_file is_finite is_float is_infinite is_int is_integer is_link is_long "+"is_nan is_null is_numeric is_object is_readable is_real is_resource is_scalar is_soap_fault "+"is_string is_subclass_of is_uploaded_file is_writable is_writeable mkdir mktime nl2br "+"parse_ini_file parse_str parse_url passthru pathinfo readlink realpath rewind rewinddir rmdir "+"round str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split "+"str_word_count strcasecmp strchr strcmp strcoll strcspn strftime strip_tags stripcslashes "+"stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpbrk "+"strpos strptime strrchr strrev strripos strrpos strspn strstr strtok strtolower strtotime "+"strtoupper strtr strval substr substr_compare";var c="and or xor array as break case "+"cfunction class const continue declare default die do else "+"elseif enddeclare endfor endforeach endif endswitch endwhile "+"extends for foreach function include include_once global if "+"new old_function return static switch use require require_once "+"var while abstract interface public implements extends private protected throw";var b="__FILE__ __LINE__ __METHOD__ __FUNCTION__ __CLASS__";this.regexList=[{regex:SyntaxHighlighter.regexLib.singleLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.multiLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:/\$\w+/g,css:"variable"},{regex:new RegExp(this.getKeywords(a),"gmi"),css:"functions"},{regex:new RegExp(this.getKeywords(b),"gmi"),css:"constants"},{regex:new RegExp(this.getKeywords(c),"gm"),css:"keyword"}];this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags)};SyntaxHighlighter.brushes.Php.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Php.aliases=["php"];SyntaxHighlighter.brushes.Plain=function(){};SyntaxHighlighter.brushes.Plain.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Plain.aliases=["text","plain"];SyntaxHighlighter.brushes.Python=function(){var c="and assert break class continue def del elif else "+"except exec finally for from global if import in is "+"lambda not or pass print raise return try yield while";var a="__import__ abs all any apply basestring bin bool buffer callable "+"chr classmethod cmp coerce compile complex delattr dict dir "+"divmod enumerate eval execfile file filter float format frozenset "+"getattr globals hasattr hash help hex id input int intern "+"isinstance issubclass iter len list locals long map max min next "+"object oct open ord pow print property range raw_input reduce "+"reload repr reversed round set setattr slice sorted staticmethod "+"str sum super tuple type type unichr unicode vars xrange zip"; - var b="None True False self cls class_";this.regexList=[{regex:SyntaxHighlighter.regexLib.singleLinePerlComments,css:"comments"},{regex:/^\s*@\w+/gm,css:"decorator"},{regex:/(['\"]{3})([^\1])*?\1/gm,css:"comments"},{regex:/"(?!")(?:\.|\\\"|[^\""\n])*"/gm,css:"string"},{regex:/'(?!')(?:\.|(\\\')|[^\''\n])*'/gm,css:"string"},{regex:/\+|\-|\*|\/|\%|=|==/gm,css:"keyword"},{regex:/\b\d+\.?\w*/g,css:"value"},{regex:new RegExp(this.getKeywords(a),"gmi"),css:"functions"},{regex:new RegExp(this.getKeywords(c),"gm"),css:"keyword"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"color1"}];this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags)};SyntaxHighlighter.brushes.Python.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Python.aliases=["py","python"];SyntaxHighlighter.brushes.Ruby=function(){var a="alias and BEGIN begin break case class def define_method defined do each else elsif "+"END end ensure false for if in module new next nil not or raise redo rescue retry return "+"self super then throw true undef unless until when while yield";var b="Array Bignum Binding Class Continuation Dir Exception FalseClass File::Stat File Fixnum Fload "+"Hash Integer IO MatchData Method Module NilClass Numeric Object Proc Range Regexp String Struct::TMS Symbol "+"ThreadGroup Thread Time TrueClass";this.regexList=[{regex:SyntaxHighlighter.regexLib.singleLinePerlComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:/\b[A-Z0-9_]+\b/g,css:"constants"},{regex:/:[a-z][A-Za-z0-9_]*/g,css:"color2"},{regex:/(\$|@@|@)\w+/g,css:"variable bold"},{regex:new RegExp(this.getKeywords(a),"gm"),css:"keyword"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"color1"}];this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags)};SyntaxHighlighter.brushes.Ruby.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Ruby.aliases=["ruby","rails","ror","rb"];SyntaxHighlighter.brushes.Scala=function(){var b="val sealed case def true trait implicit forSome import match object null finally super "+"override try lazy for var catch throw type extends class while with new final yield abstract "+"else do if return protected private this package false";var a="[_:=><%#@]+";this.regexList=[{regex:SyntaxHighlighter.regexLib.singleLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.multiLineCComments,css:"comments"},{regex:SyntaxHighlighter.regexLib.multiLineSingleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.multiLineDoubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:/0x[a-f0-9]+|\d+(\.\d+)?/gi,css:"value"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"keyword"},{regex:new RegExp(a,"gm"),css:"keyword"}]};SyntaxHighlighter.brushes.Scala.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Scala.aliases=["scala"];SyntaxHighlighter.brushes.Sql=function(){var b="abs avg case cast coalesce convert count current_timestamp "+"current_user day isnull left lower month nullif replace right "+"session_user space substring sum system_user upper user year";var c="absolute action add after alter as asc at authorization begin bigint "+"binary bit by cascade char character check checkpoint close collate "+"column commit committed connect connection constraint contains continue "+"create cube current current_date current_time cursor database date "+"deallocate dec decimal declare default delete desc distinct double drop "+"dynamic else end end-exec escape except exec execute false fetch first "+"float for force foreign forward free from full function global goto grant "+"group grouping having hour ignore index inner insensitive insert instead "+"int integer intersect into is isolation key last level load local max min "+"minute modify move name national nchar next no numeric of off on only "+"open option order out output partial password precision prepare primary "+"prior privileges procedure public read real references relative repeatable "+"restrict return returns revoke rollback rollup rows rule schema scroll "+"second section select sequence serializable set size smallint static "+"statistics table temp temporary then time timestamp to top transaction "+"translation trigger true truncate uncommitted union unique update values "+"varchar varying view when where with work";var a="all and any between cross in join like not null or outer some";this.regexList=[{regex:/--(.*)$/gm,css:"comments"},{regex:SyntaxHighlighter.regexLib.multiLineDoubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.multiLineSingleQuotedString,css:"string"},{regex:new RegExp(this.getKeywords(b),"gmi"),css:"color2"},{regex:new RegExp(this.getKeywords(a),"gmi"),css:"color1"},{regex:new RegExp(this.getKeywords(c),"gmi"),css:"keyword"}]};SyntaxHighlighter.brushes.Sql.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Sql.aliases=["sql"]; -SyntaxHighlighter.brushes.Vb=function(){var a="AddHandler AddressOf AndAlso Alias And Ansi As Assembly Auto "+"Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate "+"CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType "+"Date Decimal Declare Default Delegate Dim DirectCast Do Double Each "+"Else ElseIf End Enum Erase Error Event Exit False Finally For Friend "+"Function Get GetType GoSub GoTo Handles If Implements Imports In "+"Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module "+"MustInherit MustOverride MyBase MyClass Namespace New Next Not Nothing "+"NotInheritable NotOverridable Object On Option Optional Or OrElse "+"Overloads Overridable Overrides ParamArray Preserve Private Property "+"Protected Public RaiseEvent ReadOnly ReDim REM RemoveHandler Resume "+"Return Select Set Shadows Shared Short Single Static Step Stop String "+"Structure Sub SyncLock Then Throw To True Try TypeOf Unicode Until "+"Variant When While With WithEvents WriteOnly Xor";this.regexList=[{regex:/'.*$/gm,css:"comments"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:/^\s*#.*$/gm,css:"preprocessor"},{regex:new RegExp(this.getKeywords(a),"gm"),css:"keyword"}];this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags)};SyntaxHighlighter.brushes.Vb.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Vb.aliases=["vb","vbnet"];SyntaxHighlighter.brushes.Lua=function(){var a="and break do else elseif end false for function if in "+"local nil not or repeat return then true until while";var b="_G _VERSION assert collectgarbage dofile error getfenv "+"getmetatable ipairs load module next pairs pcall print "+" rawequal rawget rawset require select setfenv setmetatable "+"tonumber tostring type unpack xpcall "+"coroutine.create coroutine.resume coroutine.running "+"coroutine.status coroutine.wrap coroutine.yield "+"debug.debug debug.getfenv debug.gethook debug.getinfo "+"debug.getlocal debug.getmetatable debug.getregistry "+"debug.getupvalue debug.setfenv debug.sethook debug.setlocal "+"debug.setmetatable debug.setupvalue debug.traceback "+"file:close file:flush file:lines file:read file:seek "+"file:setvbuf file:write"+"io.close io.flush io.input io.lines io.open io.output "+"io.popen io.read io.stderr io.stdin io.stdout io.tmpfile "+"io.type io.write "+"math.abs math.acos math.asin math.atan math.atan2 math.ceil "+"math.cos math.cosh math.deg math.exp math.floor math.fmod "+"math.frexp math.huge math.ldexp math.log math.log10 math.max "+"math.min math.modf math.pi math.pow math.rad math.random "+"math.randomseed math.sin math.sinh math.sqrt math.tan math.tanh "+"os.clock os.date os.difftime os.execute os.exit os.getenv os.remove "+"os.rename os.setlocale os.time os.tmpname "+"package.cpath package.loaded package.loaders package.loadlib "+"package.path package.preload package.seeall "+"string.byte string.char string.dump string.find string.format "+"string.gmatch string.gsub string.len string.lower string.match "+"string.rep string.reverse string.sub string.upper table.concat "+"table.insert table.maxn table.remove table.sort";this.regexList=[{regex:/--.*/gm,css:"comments"},{regex:/--\[\[[\S\s]*\]\]/gm,css:"comments"},{regex:SyntaxHighlighter.regexLib.doubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.singleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.multiLineDoubleQuotedString,css:"string"},{regex:SyntaxHighlighter.regexLib.multiLineSingleQuotedString,css:"string"},{regex:new RegExp(this.getKeywords(a),"gm"),css:"keyword"},{regex:new RegExp(this.getKeywords(b),"gm"),css:"functions"}]};SyntaxHighlighter.brushes.Lua.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Lua.aliases=["lua"];SyntaxHighlighter.brushes.Xml=function(){function a(e,i){var f=SyntaxHighlighter.Match,h=e[0],c=new XRegExp("(<|<)[\\s\\/\\?]*(?[:\\w-\\.]+)","xg").exec(h),b=[];if(e.attributes!=null){var d,g=new XRegExp("(? [\\w:\\-\\.]+)"+"\\s*=\\s*"+"(? \".*?\"|'.*?'|\\w+)","xg");while((d=g.exec(h))!=null){b.push(new f(d.name,e.index+d.index,"color1"));b.push(new f(d.value,e.index+d.index+d[0].indexOf(d.value),"string"))}}if(c!=null){b.push(new f(c.name,e.index+c[0].indexOf(c.name),"keyword"))}return b}this.regexList=[{regex:new XRegExp("(\\<|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\>|>)","gm"),css:"color2"},{regex:SyntaxHighlighter.regexLib.xmlComments,css:"comments"},{regex:new XRegExp("(<|<)[\\s\\/\\?]*(\\w+)(?.*?)[\\s\\/\\?]*(>|>)","sg"),func:a}]};SyntaxHighlighter.brushes.Xml.prototype=new SyntaxHighlighter.Highlighter();SyntaxHighlighter.brushes.Xml.aliases=["xml","xhtml","xslt","html"]; \ No newline at end of file diff --git a/app/src/main/assets/client.js b/app/src/main/assets/client.js deleted file mode 100644 index cce1c5bb4..000000000 --- a/app/src/main/assets/client.js +++ /dev/null @@ -1,20 +0,0 @@ -function showImagePreview(url) { - var idx = 0; - for(var i=0;i)/gim; - var arr = []; - while(tem=reg.exec(htmlstr)){ - arr.push(tem[2]); - } - return arr; -} diff --git a/app/src/main/assets/css/common.css b/app/src/main/assets/css/common.css deleted file mode 100644 index db9299d5e..000000000 --- a/app/src/main/assets/css/common.css +++ /dev/null @@ -1,204 +0,0 @@ -body { - background-color: #f6f6f6; - word-wrap: break-word; - overflow: auto; - overflow-x: hidden; -} - -.about { - float: left; - padding-left:0; - padding-top: 0; - margin-top: 5px; -} - -.about li { - line-height: 24px; -} - -img { - max-width:100%; -} - -img.alignleft { - float:left; - max-width:120px; - margin:0 10px 5px 0; - border:1px solid #ccc; - background:#fff;padding:2px; -} - -pre { - font-size:9pt; - line-height:12pt; - font-family:Courier New,Arial;border:1px solid #ddd; - border-left:5px solid #6CE26C;background:#f6f6f6; - padding:5px; - overflow: auto; -} - -a.tag { - font-size:15px; - text-decoration:none; - background-color:#cfc; - color:#060; - border-bottom:1px solid #B1D3EB; - border-right:1px solid #B1D3EB; - color:#3E6D8E;margin:2px 2px 2px 0; - padding:2px 4px; - white-space:nowrap;position:relative -} - -a{ - text-decoration:none; - color: #3E62A6 -} - -.title { - color: #333333; - font-size: 22px; - line-height: 24px; - font-weight: bold; - margin-top: 15px -} - -.title img { - width: 28px; - vertical-align:middle; - margin-right: 8 -} - -.title .recommend { - width:20px -} - -.authortime { - font-size: 13px; - color: #aaaaaa; - margin: 4px 0 2px 0 -} - -.authortime a { - color: #0b9a27 -} - -.author { - font-size: 13px; -} - -.contentstyle { - color: #333333; - font-size: 16px; - font-weight: normal; -} - -// 相关软件 -.oschina_software { - color: #999999 -} - -// 软件详情 -.software_attr { - background: #f6f6f6; - font-size: 16px; -} - -.software_attr { - list-style-type: none; - border: 1px solid #eee; - padding: 5px -} - -.software_attr li { - padding: 0 0 5 0 -} - -.software_urls { - list-style-type: none; -} - -.software_urls { - margin: 10px 10px 10px 0px; - margin: 10 0 50 0 -} - -.software_urls li { - float: left; - margin-right: 8px; - color: #fff; -} - -.software_urls li a { - border-radius: 5px; - background: #557DBA; - color: #fff; - width: 20px; - height: 30px; - line-height: 28px; - font-size: 12pt; - text-align: center; - text-decoration: none; - padding: 5 10 5 10 - -} - -body.night .contentstyle { - color: #FFF; -} - -.contentstyle p { - line-height: 120%; - letter-spacing: 0.3px; -} - -body.night { - opacity: 0.5; -} - -body.night { - background: #222222; -} - -body.night .about { - color: #999999 -} - -body.night .oschina_software { - color: #999999 -} - -body.night p { - color: #999999 -} - -body.night a { - color: #4877b1 -} - -body.night .title { - color: #a8a8a8; -} - -body.night .authortime { - color: #696969; -} - -body.night .authortime a { - color: #0b9a27 -} - -body.night .software_urls li a { - background: #696969; - color: #fff;r - width: 20px; - height: 30px; - line-height: 28px; - font-size: 12pt; - text-align: center; - text-decoration: none; - padding: 5 10 5 10 -} - -body.night pre { - background: #222222 -} diff --git a/app/src/main/assets/detail_page.html b/app/src/main/assets/detail_page.html deleted file mode 100644 index 88083ecdf..000000000 --- a/app/src/main/assets/detail_page.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - -
- - - - diff --git a/app/src/main/assets/detail_page.js b/app/src/main/assets/detail_page.js deleted file mode 100644 index 967815059..000000000 --- a/app/src/main/assets/detail_page.js +++ /dev/null @@ -1,55 +0,0 @@ -var title; -var author; -var time; -var body; -var images; -var imageCount = 0; - -function load_day() { - document.bgColor="#FF0000"; - var font = document.getElementById("font"); - if (!font) { - return; - } - font.style.color="white"; -} - -function load_night() { - document.bgColor="#1f1f1f"; - var font = document.getElementById("font"); - if (!font) { - return; - } - font.style.color="black"; -} - -function fill(detailBody) { - var myBody = document.getElementById('body'); - myBody.innerHTML = detailBody -} - -function changeFontSize(body) { - var myBody = document.getElementById('article_body'); - myBody.style.fontSize="22px" - myBody.innerHTML = body -} - -function showSuperBigSize() { - var myBody = document.getElementById('article_body'); - myBody.style.fontSize="26px"; -} - -function showBigSize() { - var myBody = document.getElementById('article_body'); - myBody.style.fontSize="22px"; -} - -function showMidSize() { - var myBody = document.getElementById('article_body'); - myBody.style.fontSize="18px"; -} - -function showSmallSize() { - var myBody = document.getElementById('article_body'); - myBody.style.fontSize="16px"; -} \ No newline at end of file diff --git a/app/src/main/assets/fontawesome-webfont.ttf b/app/src/main/assets/fontawesome-webfont.ttf deleted file mode 100644 index ed9372f8ea0fbaa04f42630a48887e4b38945345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122092 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 +|+&Vdls@0SAya!5R?! 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
6YuX1v{q9=vI}{pN+P4FW!CI?#11< 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 z za(t10q%E?T+LkeP@6JiC8{J(p)eO%@n-@KLR(%hz8^PZQRs$1TA-j?sn zv*fDs;RN-Sbd{G(EYHxT7ENLglyBeA9`uyY$elH-y~txPVVcHOU)kBTtg$?n?i*6q z79T#LeeJT2?((LQSLC+qGiowIIo#8G+OIFJjiE^cJuvELk?dZ)4+|_BS;%ct4^+i? z(Js6hWWs@;rGLu7*bA5w%4;l4SA~AOLA);u7$<^sWRgm>7Bd=R6u>dT zhgHl9*vJ0Z5df{|+=cfDW-sCW(FIO!@d;GlVnH+(&K~r$9QE9o#UHDRem|pclFF*n zXv!{q?6Pu=MrTcYF{ZL&{J6EuyUE`(hk^yQlZqpfKb?y6$M^^MW1CN%+6-7k8)=M_ zg_CLvv#uJNZPlL+4@DJrlRPPqg0$$_8&pBJ7r;TwVHNFoJAV)Bz>I>JZeU}eT!q%|%7cOouZw)9K30bWj%3K2Uld-^PCG&29=; z1oofoc#Sj`6gD*#`YJU4kn7mVCvWtXhMR&O=^oL~`}c`{-ovk=XDK3=OVws66}O~P zX_yo>7Z;;&f^cS+Gn33ZzP)eD_T$I5vm3V`?|VyK9Sjf6pC=>og2INz=}j4)Vn(ju z|HLiG8XERjYHZG_cTAab$5i`v;Y@?%5f{dR3cN*dBLGE|L=Fj1A&fmjo_oAJClN>b z!9$fq3NC#!z`TRK8&f-%_bhh=?E9Csk6dOq8tmlqee|cZV)-r0$jA$P9LzC$)riH5 zM(`gS?RMkpwe3rnv=Im<4ny&WYd0G04#T=s$GSEIYTb9CfUS}I0?&_#6?AdKlQE>JP5qVK_n&X6XoB!2fm-?QW@(sbsb2m7`@ zixReEC50>{4*u?^GY=63e;Qz;EN1>a-+XuPWo0+>KRk5i)B{9SS;l{pSzeymKmQ0i zB;|ks?ip+V^ey7&S7O9^6EQxmYb(=BPIhgL4Tcr=kdsXB)-FCR5!=c+&r{tnMu|kJ zG7UVINaq|z5I#J3Du)6zi@!<|$Yji6aE!nQZL@eAXKxh0ZicVtHR@B3Gn zjSp-v8Z6PV>raGhH{9{yhUU7*Pedy>u$IAZkg1P%B92-|M#d-5-$VgXJ;e?$n=DCe z%XrPe%)zFw?=h^BpU!{33Q@+-a_Os>1Gb2ci(V4FCVEfw579qGpNhT^Q8Zbxi=}G6 znvsI~g`#_1QaBW_8K93!MTsg#FcQECPw`N6a->ru#0yN}!cZ=Z;8a^-Bto~s6pO=x z7*c{5+g)NyR1NZwTq#_KnV5560*$(uYGQ)Pv`SVDnl&;#Rhc@#a-x4+UhW3fYG;$3d7Ri`GO$do379eJ81npEkna-B`5d4!PL z%z0PmMe`K(S>pDp>}aOZq_CXitGJ zoi$pudPDZm)HE%NfEIVmVGD&ArRHt1Nv4rN8DdzDWVt-4x%LjZJjX#u3z`*aqQB4w5vfl5lO z?@&n!5M@KpoU|9{F~0l<@<}oBH2_2afJ{;@K|2v3{b(cbT2UZgvX{Y56|Djl2h|qg zD*=84@*EBU@|w0IiZG;do`6)O&aSAjU%LW*xi~5`*=WD6$z3HjxRy3=j)`STjg-jJ z=S?ll7@H+kWgCo^NS@VMkgAsJEUX5cz*@CIY4<8+3bDdMIu({2mnXi(XCFFZ+~Vl6 z!wl2ntZOLUw{mS->hPLIqc<2qfBaKQaA;$T8u`m(MdQJ$usBV zI66j=P+3`skQ-(!E;8zBTH(H{918I?JvU?ZYlr!N{(kKH%rhJbUpJ;getY30UyFq)l=doWc%XsXF-Sjw(8~ibR#>E<_B9t)v#bTu z1F*PmR+`7aQPnTjnJvXM7ZQ#LQWr-Qb-^~rM%~oQg@6hw55kfW1k@A^bZoGisUj9( z;NWt5_Pc8C8?9YDboA=+L(I7~s{Km8-#^>$+JEy?ssk$j>}J37K+pc0_q*z|?G2r) zN4G3fjk<@OwR&{(QuUZ8>XrM2I<5mf`0I@2nObHrGh0$~>r~j$jPs!Q<^#^U$Hpj^ z4IjOlyxw!b70Wd>bgmiQv{*al{u4KdW4WD|rsC14WG;H|lXgimpq2nLS zR5;j6YenH^M7=^W;u-xqF|n{g47(O0*5MNdQHvT9`vrdCScpKha{;bRRi0oGCN_GV zs7_p%jZS3JF}r{$H)dx^>$$qRkyg&lN?J^t)w+5{Hd7Xa8xv{jEmpmPBND%|EN?oa zs8z~s9LKOW2Wu;esWyNj>~&VE3bO@l^GKqZduQgu)Bid% z=LDb2RPv{9Dh_SgUFI1z;_GUeLdH2f+|c_PCtp2U=nVZGr zGB6sHgZASk77=?!r#QmQ8a`PAo_}tf^%1-4aydz7lroBkRDcJJ(@AuUgw<-jj2F;E zfFVsxVX3%qq(f4~09}1jlVZ`RSc@hV-H?N`a`!(n6W9HVlYN>fb~D$w6aR8AtYOO^ zBkND=QhI7TY^ve8QaOeWJ>xHM`lLD-CE{oP_=DtIBrf2J!7WNB)c6Yv=b89PLTojh z%xDK1A%3w@G!`vkmFQB@e$gGGM@7A84@nU|Y43%?gp5e%So_8dwkW2;vKWVLgRP zLLq_hWC-6GjKlw@ZT2GV<6`aS!u_;8Q4}AXCjyG^!u|i(?f+~0yx950F=|{pBce;v zo1{8A$8_}H*5bdl;<p-^-T}}f z+~nslT)ut-2zQu&uOIQqzvn1vb9_V=f8=N@;d_#x$M^X6`d$>^j&VLNz#U775BnV- zeT3Q{C((`&It5)X4m+y`R}Uk;bR>GA5aCN@96={RKm|mcevt>k*@Yay#%jo(kV~Sw&sJ2R<u>Es;7ha^-!CTH@}(fjV+H=6zGn&(P%Q!KmiJ=H6OkZrAi6`PQ=J7;BqCtGx=T5{NwT?v0 z?E{9S*PLx;dIPy#q>EYq=@OpjnS{t&p+h7cg8Fn7URD&URU&& zfjBf8JC0pq$UwLcF_nerZ*X9n-j^8k&j5|~uk_y_prg=hahJlxiv?J9(Qaa74?mxu zFMey#Ms{-j7~jY@icbYRe9RWJ@i8&Oi2GMTM(HIF;eW3M(SW_)Eb@>qv%8m+9bSCj zefK4H4y>)djVKN;e)7pD6P0|ouS$DTtv(5EGKT(Yt9+y<5Ys+RuEw%gq3G4d0{r5~ zwXvkVke7+X44zvKJVXGI2sQYkKpU`>!8O1_x(hR&bm-#1Cs5^D>M@%AoKlH|_ zZ6TLIUNT6j#{M5MMhg$hX@A573EzTOP1r&UB5PT^l))aw6Z}rHaYfHn^McKzS|7M| z)s$mTu4feWP2>i$cXRykO_#h{b%kOsa_QmUr-#VGwI#Jg(Te92^eln9QVP#R5Hi47^oqb5 zKxKI<|HHsSwO7Hco_vPls8Qsl5r64W6?9^lQ!D~uuSk-6)k{}h^-^Nz?%8(x?A98$ z`#_7S-I%traW?zLk&T;<9NDz-$Ugr2daGb?3QG@_qVjh+%k`>VkrCJ#v?fXp@%j-$^XDVz4@U7%O{fiZp>%M{wLt@`yRJG zNN<$kdFtR(pr~NswHGEG2sG{xsswHtw>)43tE37GRXY6i8`AG2WwDgfen*k)&=dt& z9pD%5F6~*eq=(loZ!ei-E6S}{ZL@|e+s(#ywl8TGyVrQ_}s;FG)zqkGo#nxpVrAooq(WlBFZsmhdm$zN{?YXv8@xR$Dz{WN~M_--$Q(@J|u{D)JU!C4A5HojYILwNnIE^`FN`zLOx&7A&$k(2<8xrYyMc;TOW! zg7RdxLtAD+W1CA8Mn;3c;z5vucE%d$8vtdBKWKoy>k`wCEu#qt{kX$#=8dQ%KG$^NzSu5BwGpu}T>vi}XlSO3ieOj}beW;qh z@(C50?sjmD(VT57=AY;H`iFas>1MM+&o+_y&wkOt?=X%Te|=XSf)!c2MpKz=BQcCm zag5N^rd!wFMqsE$8l+sBxKJV;;Gm$mm9v4o9+(m-jE|Zi1h5O7(#z!fPU1k}sg|31JiRKpOOulfv_fAXibIZ+rj&x`FA?gB}^BpW^J2 z&f;(sfnP1T6rThfrjRInHon*9QxLu|HDDmSKNgnH(`B5}-^UGs)aS`=EI%f@ftuIt z4A{J0TVSUS$a-?^*+m@O`ZyrKFAx@k#u^hmnDqjtsGs#KIm**95u<%^6s0saYM?Yt zC^eweC)g4P$^png^(r#R!^6#TJRP** zSl+a%ZQl8zjr>CoywYQFXSkKl?e`xdIkQX#XV$A1_<%@5nqgVGJj>{m*=H&3pNC94 zGgHDgugtSP#Y=Q~mZ8J)q<)t>Q|7O)RAo%Kz!5~KJSy-?fDK$uX#P1VD}{a?#9Gu4 z^>8BoO)IhR;_O{6{shUh0`YJL>m-MJGx4~apW@=bbdfx!(M1lqh|Yz+r^Ej%ARJ(MsT>% z7l=%c)H0Y3gI{qWEcH|d4n`5hM_?udWSy3W5p;2GM{*qj`rvvCBlU^_(blw{0bAzi zg`)Emu zLatV;Ns8P|GL@wD}s~NNRxZ!b0f0BF*+Ti9+#TR$mAA_Tt-rl+iXe&V=^%c z7dO|90NwM3;NTC?WQYJIAnNF*vCF<>%B1i{SPSM>cSMei8h{VZ|m zBBd*CKm0YLRH)U8#P?q-Qi@J6%~}~EjJ1-)ljPq-AyvwyDP(?pqg=i*E^m1KWx3*| z*X8J#|Nj09rSgmKRpP$yQc}L_OL2ep0}}83@R>x;o0$dtwjZQQ{SRclUO9r#{!XSe zd`I3gDARb!Hzw0J=eaNLm@4dh_m~j zTO5UI_E#+`W(?$Aa&XmaNcP>$-}Krla_}PC$4C#E`r1JK*I3b*QFkYCEq9OVyL-?E z$sDx7Wui_zSr0$dSBbbZIu{s_W7>=O)oG#?qPXZX%n2AZF^LJoX1_RNk?K4&RWzaC zcj~@{b4_TUXuVPs+Beldpg<#%efQ61b7glYDDH*Fvwv) zEc1a#AZSG3C+foT3)?QDiOuMgMdITQn7K{^83&YH9Co*DWVJ%Y|3O8j(Ez}N2!v(f z^0I4Ph^!})n*2+u-@oU&@tPDX5i20ZVxZVB5Sse7Skdvvj5m^)Q*4J=T(@A%q7tPQ4ywWJEcuP7CjT40jlo1IsqywB zVGMZ?H4FlEAq&Tam&)a=R}k#Hc-w3^a?!Uur{VCSxReFEH4(G%Lx&sqw>qamJH)nx zxq9iHi4Wy&u>GYP z$s_Xy^|R#jcl@^Jry&_$cmv9*2N;3ZUb@XDUjkGUyal)p@<7Z8K1Tz4(dS3H8r!g0 zVucuAnL`o|c3und*7rVJ$A8*9i&L>^RGdUPw}tf*4!z=h~?%bQD1{o*e;B>ut z?p&fHsq^L?k{UP`=TRNP`}m6gn2s~lmNU4ImQcy_x3mD^4M3rU&k+3!?ncU73G4x# zQ79_x;?JB$8oMrU$*ddET%F&}UpI9Sqw4yH{3TtimYCGNF4PS z_dr}Z`~C;)Fw$ z^-tQ3W5?=?1K@fqGB5_?Z}|FbuFRY`NmFIsA=rxV&?FkIhsc3LCW%fLF|FgDS!ar9 zHG7O*eO(5|7crLZDK$p)R2IFkpHi#qZ+lA@*o4FbZ%ttP1WnLIXFws#GA}II`Si7@ z<@}FCj%1;~<&lx6Ie9F>8IT$@(MzA7C_0G(ZT}bFKMI?{gx~mNRWynhW37ey%Mlie zFd`4=9fZ70FfRnDHy%+sG)NRWF|A8?1~2-=q+6D%3@cgLBag^ftfb2RuExWv)qlUR zoL`xuVXk1zDb@YIzv+$O%mJL~+i!8^0IooC5DsnNPh41@kl@TLJ+%TWeNSTr`e*Rx zx#D-wZD?c_#3Bg;aRx+B3TQj#R4Ow?Y4AIh;V}%WNjhfZ!Dc@3J2R%#{PC8&wsuF& zoaxKD$J&WKb=;b@Bko$c>y|f;KJ-+X)K*tsqj#4TMq+=urHXm}1=smQFaH?S1tdV0or%ibLFa3Ue!GFu*8!Mni z>0v>)QJw|^Jm}&mvM~Dx49(ElbYedw6ZGd~ra@RTk_K?|UzrK~L;S-}Kh1`*_AUQV zE74-|`f3Lmp16&B^=bZLl9ITM4X5|LYRWeCy_%lRhOvSISa24SSs(f~Z|-}K>^}P8 zC67GvNY{sC7Qc}Hax-CkN6Bvfx~#+p8J5HcDJe|4C4)i!B_|}802qL;NsuoW%k-dBpH?j7&=rH2Cnz-=nU{VULc#R%+wOU$ z{qFW>&V2oh!|_ZfQ%lw-3tl40l(_8lXF5Bd0s8+}A|TY*;h=}oGu*>(OFShMkig%P z2g{zhCwV&b7tAlPCI1LSH;r`@bRzT*y)UYhAg!>ANvonJ{~(QkmJYhsOJwq2-sj&3 zNraG%mw*5LzmUlvcx_?}NFF$ATP_=I%l5YByy-$dUd5g`gh z@-<%PG_?9+eYCIuJ(3f^Bm%7fMkY#50NtO4!cg-s4Up7;KLju$xu ze8T1em&~GP06;+mj6wF-=Mljlij{c8Lz@a`w^nJjL5Ic;ipPwcOm)ia;BcdX0HS+y zk0;1-<`E9Ztn7A!!JTf*^Nb(aXf{<0wQ^~h1sUoTwNw$x8BtK5l@Bf}_5*(5&&T+q z|K85*dxyZD!^pxjR~^`Udt+fx>(*(*TbE9EIc)`=REcDnt|8T)zbMW9=)<{7(mno0 zoo<=B$>}V);aDukZS?50k@c(AFP_y=snex^&$YI&t$F6`Escn`pZ>|7pGbRB1`^tv z3c79xHmfe6xz_;oa~&o=Q@|Gl1P%Y7*n##*8qh{9uo%N~MI%e4Fk=7-WGQCR)KE&H zI~FuU#JNZT@}W(W?!~eYC%|biX!chN7W+h6DRv9kOB@iThX_XnBW4bu=CgrCP`YWL zQL^-VM? z6qeqZJx0ao92G^LqvZOdo{|#B^u-JKf2H61I!OFgW3uloEo3INWsb>go7j3wo&IZu z;%j}~Ev*xUqOO)(>h)hK6kqA@=zc4y2?rruf2iuS`SNys0yN&8@Az!0p3J3oFK~EYA*PED6=OWS#6D zZZ9Zk?Ns<1FK3v`S#sKiAz$v5&tb3RDtv_1LX*?GO9C9a-N>Zq%IPTO->{X=Yrd_5%NV`D!CCJb zx#L(~-%~l`nJJUfJrfc)jDPUCV5p*dTsfHxij}8YioF@@pW^syw{q&`W5<@2kHa_) zIiNqrUr(d6tymi#~B6#IW$=H3S(c$`3)|6N3Yf9Ni>MmjaF!;+e zUZy2@XzGsg{HaSCuSiWC;al0SFZgDRs1)1~f510$3Y<<<@SyfD>J_7=umGUBN%^CY zgJ~W+A?3nx2Kl3kfwNbjgri)Ws7k>W2&`nAmyW0iS4DozA$F4(GoRWNXs8cWHfopj zkpCRyzr86|X95?U&lE15@=&~`CH~Me_$gAP1Tqw{u7iJFc@s(Dj6F-dbtCwlyw&Vs z?8c4X{{G=D6`jMpnQcpQ(b2y1<=js5Y$Iwd$`2CmzJSs7HJJ z51wrfCP^wMMZxGo>0i*iTu5V-B5Tidgle0>u=*8S*!{&=raPBy9e^~P=V){N|Z_8 z&0zO8^XtU~l{pY((KvxzHYknyDDw+t0HlZ(3zb%V0j(g#nwk2-jI7$)tPIu`4%u^Z z?4j`I1<4ZT-l8Ba2^R4`xPy1`AKhy4dQ$VN?CtVI6aT@pr1kj+Na+b?(d8?mf7n+~ zE8I#Pcil`J_i&2#!Z0ZR_{om!9J?bYn|yg;!QI^T{HcS(n^{)D>6lILzD(SA5y!3D zK221w`19C@7x;I6LtNkN-1#kdpm@l1luH|)8t_2D#EK_Ca2#DyKL%6_Ga4Q7b%t)bH*C;S7)_;)NEa37?L^Y%@< zMV%2cu)S1GMQ)FTa7`5~*=grpRY-D2uiAf25SxktW*v0h#Mk`WdZ$`$F!Lcl%X%f? zoOt>D(=$mMJDE>EclE#U$4tW2pL<%J5j3*BrqgP1R^RiNGn@MULGR)0I8-Ez2~-}z zmrLroVJa#1cYX>Lpyu#?^SVIkEPQUt08I;%#uC9>47y?wh%G-lcrX9b0-*XYS7@}- zp>M64{p1xRM_%#d?5Rf^E~lxud7uPCLD!af#Bl9F;&?4_dH~FKQh?^M4*o^Tp?1wS zg-v#aoKZ}kjlk=H_uqK_O%1a40SPZLv+Kya^ACPAOk|zP%~OV zHV47WdC_HC_`amDEr{ha?;+P*;7k;YAc+sI#6S8Ae_<8I^Jm0y(RRp}{fIPSl*9-^ zU3YjzaNfap=R%Mx8dU%}#yRe3EUdit42XnF?$hM}YXP0R`grxWrU4azj|Io$?LpE#PvD~b?Gc7iEMzIEa zF-FPMa!p09&uYy*mYaE3rp=a~Rig3Yz*Oc5Fk=v}eq`8Y!zr`w&9d3NIc3sY^hRyBb6bjQSa;ZtdaS9W^bC(%eKb`K>Y^gNU>T)61s%3R4o5SYX3)6#EiGp(o z`?6DAc1EHw?cjTnFA3~nB(?)9mH<5vI~{O_Sgzc-mGxN&P1 zkwWsJ%_puK>WmSIO&K{8xA}ZF?wK=H^p||4$}3y5V%P1fS7!Kqf?h%8N{V$G$dE!2 z#dSbSAy0}YLJ^09y-);Y23Sz(?=J#GFQ`j1HqjKFq?_+ydMVJapMS5Xujk}Ri71hF z@?0Sc6zV_)CU){^*8<2JA-2a8SuzERL6b+B4g!J0e{8QGTMt_72@VEq-G7O)gs zC?6tX_`oi4PO-zQgNGi(6nJq^xM>hE1QJZ0gSU#4G&2JE4b*Fx+UbZ2SGzC~2~>k{ zgBY11#(dlS+p`r$TZ%GMpT2pNjeRWlyLy8mHh$5Q{2Bi5ls;FWy?x~7m?2`QKci5k zC??3|id03X;ytBR*{M*-?eYooG+caR3=jW^!l zAK>D@qVS$+die}H{v@eWz1Fh+(4qA$uc`PaPmX8Lyu2;Mzda-v96~ZfXbDKiKvf}( zO-atKYRslIvkSF2+=9G)$LZ*h{KCnJl4j^Uf18eIboBaf`~7s62bH`Rt9kMLo=B0H z1KSzIcn)?47l(j`^Da)ele0R7@AuMXg2kX!CibhviDw)Eh6&i2pMQ1te>sZ86Fk3# z-;&^U;kKPefLyL3s-rvG!n$*33E26#JwOwJB+CY6R^!`O3I9feck#Po9u{u80?Ql>qM=mDZa(A~~X007ni zFNEOfzW6h8O@Qleo(n8A zs^qN~Y8)fa(<;~ao9E%s&&bt&JOjsnF6qPdXlAN1#9L9syCCI&azYS;M0o@~-Zi_PquO%H9tKk~!I z&heWzjqlv}x7dg?cXpI#O=z4D9`6{<)Y~Oos#m&5Ty3cjG=_&(Hovgu%&2*_D`pQL z!x5QBO1QBjX0NE3({W~vEi;I0E0gNDPwOU`f|;zNW7VpTQ7c!D>i^|`Vs02aw0>e@ zvL)S&2v&|bB&;oU0?ll|N|aiQ+q!oa|Bs_fylHviC8PmXPr~27v@kEtxAZ8n&)VxR zvNH;nd8BFP%%()M#tsiACz=jf@*v(B_1|jX;XteMq8WL0hA4hKCIk!;aHha5YhdHo zFz#!vNt_u&8s34xJe+?V>^n;raKriGnSZ|X4tIB-k{^!WONb}gen;{@ zi64-tkkKm(GR$z%3_40d;*?78X7RQK4Hy;x7rYM|!U-{s0c>L;qOLF4lIe$F@fD)< zgW*dc?;nb25+cy9TFiPeHbFxlr6+`OL4eqx8tAIUs$lWY-V~0Axr+UyTvK4P+V`;q ztNAZWaZ1lWsXFrxV)@{zeHxwAgyH~ zIU8VZV4WKNg*u?}a@8&uY2HvMclh)7N#5B6lIb*=d{U;yq*5!Ik2DyRaz)^ys3tg$ zNw*cYJY3JTI`sex^2dwcHmXeuVrn%NnzDfQtF=qb%*dHW-8g29*Phj-QF!%`tR?u4_WH7Qv4`=syHJIKL(Eiz~&54~Z{sI|U>yK||u> zKSTIqMZ$4d>-WIeb1)pWsGj00{AHsC#$z9_VG&P5q=Y2!f!gF zRO9uSUxxuxi|;Efk!84*AkLisTAvarD?fBLt6wJ?G9S=7?+nP+|$4nsy! zVJZ@I4gNNvj1`?0(RvcPL@#No&ZE3NL-l6fQeA8)-G+t2yJA-5u$=OGoId=ew#&BG^_@jo5DIor)Y?+XXhWGb=A z7nYd=)uY!AjPHAdXU>J~oW?V_7>QIc0AO@A`@vc)*d)=RFl6R}{R0CmbbeT+0zt~e zKqp7D!Nr1C7KX{BrM6gK3`1OhO{UXeRRpq36Q@lp{4r}B2$|Ws*#-P^o+a?GFBJW<=R~Kx}{U)lGKFUS(atfj2LPj7Y=&s!mhHIQt!>Q zaOpWU{_KL$?8B8CZtAHSd0^%UA4%V~KA7I|v@P?{u6LgKTX&N?bVb?d_l`W$tf}7a z))gkAJ^QyVyZ?!Y4tK8cXB}al*45noINa{v@(Lee?=-5fZDhs?%G_lrjE0hD3?x7G3Jfrb~ZE z#Qxi7-_9Hu(zfm(2)^?J6~QqLW=r#;EjKb(7GxLXf}5H2#%s(!-0yu$thpXG?w^Ea zF2fR;ZFb3#;2^phxQUbz6Zz)x4Xd0y!)#7$WVUGSD<{otviMA{G>`J?bh3K-+EeNH_-W9?ggvY`D)k1Xp!u|bk_@hZ0kSoytq8mnvW;Un#}?JU z(Jkqy9t2qdRm}yQ9`&bL!cs3y83RRFP*`z9G;A?~Eg!XnqNJP$Sq}79Ub3yn>;N}c93{OfOF_hwbY{1m9Pdy5mHOtSdtZCEl#&T>UW#hU2|s7!`E)gF3euK z6pKyQKD_75HA30yoWk6>b8`!GR?{-F?YxFMAg&84tX6Qct^dJBD z;)_IbYl*}+LuF1)OAUe>7HPeV3NBm86(AX^Olrtz0GE8xmdTUm zsj`h5=UAL(v$|L|Iog;Rv;>)=nd&V=JSLsLR2|K7rKgn3DvKJ%FVR~^r1zg6^c(c- ztTn(C&Q{N!tb}1Ln?G%^F`OuiW!X6r#hyOm^`^Tr@~cJLt+_Gr^#+|TGKO1 zvnzbLewo2x&bMS{H-=-x?9V8uuFlO0ghI`;W;SPXKh_+AN9``&$nz3UYM}4Fx%=kM z-A9A!Hm9YkWJ-;kcv_=B$$%7!N`H#BGCzhrsqfj{DMd4u zHh1wy0^#wb^z7UUaUEj5&Fdzgu3?S<+m}AGuOHJgQDYq z@d8`oFk+Ft5sZ5#Z_rD}K7%d{*pX4q!7`6Bg!*_aQ5amJbdD0Xq-S+hVFz}4OlV#7zf_1R!U@sRz_5mS z9%rPhg?_lwTo}o{7-mtIBB2HMnotIh0V@TX*dumD8RKjq1oC zp3L@MlJkv?vghx^`8|N^0$()(V`Qka`*i*8OP{K-FH?ba;#>XzQ&q9q~`kk zGXCE-Q>v~8tXC?Fz9Dv90rZN${&oMJJ^UB7%#SlSZUoI_VR}($%POC@puqd3HMU`c z$L7!S+ajUOD}7}n_Do#6E%g%Hu+7`6rI{KxsDJG~=fo)srY&X1%uif0Vnji-c=*D1 zDm+6%&Pwu)vm!7*kN^5D{HdrQ8u0y-#~w?(Wpo)q!$l@^b`s6_@qHykQ;OpfZ+;vd zF(S&`URjx&o0m6@sK;0klEhS2mX(pU+4y6|pD9zavyYHVY0X3@EueqO%J@sl%g3k8 zoW{w+?W+;3h1K&J(KkppXcnXpK~bck;u0|$SJ)zfAohzgOx;xOg%lx( z{(|d~MwyG#rRi!Z<^v3|R1l#cRHVRy0Tsh5WPqfuP{je73%e%z7xscnDOW8QEuvf|v6Qfg}y;^F1Kq2L1G7_Sf;Q-AM zE|QsQV>vmEmzHHpa@Yr>Hkl%V2)u$RVRdKFyNC-=H$$lwzrP z0;2T14Z?LMNhAuH(h4>=nGdN^LEvT&H)pBTIt|_x%yhPAG}@69LfJpmiM33Mf~*uv zmE_XF!UJqN{qv6kx=10gPGd3eP;S^Aq8pNO12nJ*8jRRW7yWVqWB@8A(B?!F3S zKoAq)CW?9^8eoc(VVn^O1(S&dfdP{Rh&FK+gCKDP=?PFI&{{^%3J}OIOr?wdj1`Cx5nQAu86oo&Ceq=r04 zubjvKdr5U{+tPSNG&IX?FyyJ32M2#P*cQ~lS9}9KTM26pWp&acg_qYu?ax7RAyf*8 zYIIgarf>j00F|Za{s2)gQnM9`30;Sv3+mtMUb0TTRu8%78jNg z#ZM0??6Of!p&*vnG>(Q`gzSYyo9SaSxR82w74nr3{OZT)YiD zN^(3fV}=~?A2R<9@4{^yx@=A9tNa&4`*M26to9P^O6}IBD<6DxSN)Z8$tsDWZ!pva zAoO40VaRI>3WsN*-@N`Z(aP-^O*sp++J>xxM|bakK0mWTDwnfa7emYp#vZAmiNW%R zXP_noJVX@{Q|JqY$l&u)3m3Yh9>b#9LMLo|cwmtP8(|o|RV(t~Kwx|5w2e;*pMzi( zOD1&ih0{drEAu8*ubo;sZ%TL1Xr`!n-Ic>62I=HHhq&m_q?;ey_V?{$FAFeAA{Vd3 ztjnwx+tM6m<7)H4*#F)D5dWhG5nGc1EB3r-m5r09RKRD!7=|&-3luv%c3K*n1cU*_4$#al;-CQ%4X}$e7a?E;QLr8c ziAhp_eA3@$D-?f%D}PSnHh<*hpGC2_pP4WxSvLE_uD<7)SZ|_NB0A3h*!AITRQ!`d zs0+F!(aRB`u244nZ<9{Pgu1=S`;qXtAFaR-EsT(&0oy)7&UZNC%_3j|nFz%}BORh- zM8ljM{^<58Yc@VSk=a<@_jvHq4#M%@|7G1%%gUtnB~_XXwXFsKeu=27p?X|m$GQo} zHpNFVb;W0XXqj(r{4@Vu*DbHC6c+~5{k2`?J{pjD&i9&ynRvbEO3^_&Hh6SY9;BQE z2%!~ZLkd%+8_DwIx&f*Ua8!b{De#B=`UX|IpgB>GTmRpr`Xw|*G`n*S%wKLuMW;kL zZ2^ZXt05!J>1)f)Y4f>EmY~&}<#GhtI)z={bYUaMD^$tJZS%oK5~5Xpd4#anmE{G& z2+eGf{0n!@8BtS7WSGH`?l1&8ng6;Gr|u(%-D)?R?Y2~h(`GYh)n;rv`U|l}V!gsn zM{08C1@%&Gc5^S>O1*q+;QwM)+uAWK;>@iLHgqBqHu*O*HZAIx8kQgREn5~3UVkLNPC zup$8c&bv3TrzP)=P8GC=(QXzLdKL}-qf>=&zfw_9yC!idI?bnicP}%Pu8=p@XmuuX z1cWidGo0jGO**00K&51zAPgD=&xL-?O%Qcc36gRpL)XS|hinemga&6HYV{pGweVTeZBi>fAQqDO(QOGjGQwrwCJJko-Zd?M-HU> z$bp++8=v#i{)vIAsnai6w!8SnDQ%e*X>LnS`J4u=ZsB1doHLd79PzXQSW{~83eMqA zDHki|0CdG5@{i-mAU}J}5TOOHB9(RVq;$eF(@B8_yCL@0lpOP;15<=BL%6_A{R>%G zeBd*$FC^!f0$(xABZjV^!ZRe?ww}>WneGe~+DS+Glm<&_aL9;w$BakjvRv2w3m)$> zDl0OVj$d}*@a)CQb7fw0hA&#uk~#0d?7>Jf^3i>@iWI+tNl`MsJdMWJSgddwm$gZ? z-Q%1xjUyvfT-I=P-rkw3nhF*_Hl56WWXVFibwOLx{VV3&Id7F|a@mB^`k;LW^YLKR znb7V9Uoz#Zb;CO*Ixh>ekJ4^?XzC*PimQkoY!VP{av3dJ30z-4sAAsU$7Sh~hoDY*8$<3@J!-|?^T-*t|>0@?7+$H^wYU;jN)hJKM1 zgk1FMO#j^w?ri7)u=n(e!gYkeHsRXbL+4$Q@cj_n0krKk=iQ7j?o%iUhJPCUX@ysv zde6{3Ah@ITYiZvIh9TYqA7Qp|LLvYf-$2`pATOk02uY(k=0FsN>63~UD51IbIoq=G-i@8VC5XsF>2={?U|`tC%oKx7(RI^*(_)Y}eU_L0#a2x}sbktiq3I7Z?P zX=mKW`Jawo^X2I3JtV$u*52oc?6{ThvlOY7PQp#zvh6q#&WkfmxvzREpOt#}Jp|4! zCDQ1l@csk(Srl;aivf)l=0<@dh5E7Gz;+CyZRdQywSk4!;DNV{g@XpRX$telCI%f3 zEY^r(f|67zz|H8d7m-i!xWbKZwiwL)erPV~d3H95y_UYY7O%KT9B^>~SKyxxV=DtS%leM{Ai&sQR^!#^f6EQh|JQL zN!Qsc$MNsp_aJ}bcNX?-TF|$A90}gH?VI~&lVydzt-7u6@vr}XoqY#jR8{u(-20}b z_d)_8lR^*zB$G@E3rQ$OK@|Dc4vtv#fV-e^NQIJ7}(d@?UI8rgieacuffaO= z29_95Sukd(8x(2!Vk-c!$`w;*j6Dh1x4;=1uDj8wgi0yKQHO|!A~jvSsElz5X~iWb zmEl@4LQBMm&Z%GJ^yAVVZ(vKmQss^`DLW&4K&Eo|q1e7r!Bv6u1si+)>6Zupw*G$1|4Wp&eA(gQ14mzb-NZi8rsU`-eeco3(<`RpsiNCL%ocui z(Zt6rh2|?u!uvegXJCXdR*HEi^07sa?Ad$An(Yy98-^E@mWQSkc9 z*)|f!zU8mlMlM`F^TN@Y%a_m8=gnNspYu{I^ikSuBMJ*g*xC{kzaqD~Ux zf5pvw){Z&t6?1m%m?O2$*}?Ynoc8-L``59deCtK`9fS@Lpn$j32tlsI%kZ_}$MS&s z-3Y#iTe1FIgPYwCffjDl?a(~|j_Vh7ujuyaUc>ny=GPeJh>)pYP$mm*b6YgJhJg^& zO?S!ncJ+$D0w}rYPwgKa43zxnqSSEuHjUA>qpda3T0u^WGKKQCn-^~fR_Zan@ow=w*p)exNVZaK!6vEa&Q)6NJ{=x)&3nfE@xj2n9Q=zE|FNG`F(>~xq=n7w{FHy zKRj*2^~#2jka%cMn$1ZWvGMWomSl4{8?Wyh9}>c94SnMg2D>bJ zmKDVsL(R#S1pF+?#&BgFvm{1DDlh5#wjXBI%EoA^w;oT3;@*kG-elMBH*?l{;6U_+ zYmA1`;~jWz>u`m#vNtPI9@9r5{BEOx%^S%^Z2kD<-Db%KL0QoeyIDk-^45cF=$TK< z%Fkop;^C)18wh!;`&dELoyr#<=d$G&II1E6H3q&!y^@cItgS0C&oAbX_3-@S_H&D$*B^bVVzAPC zaK(s0(shepWp!;Mm%Q@IlB{RgVDbj%lCsD#9qe{ly_`_`G(TS|~hRc*2J6?C+Q0C!9%4Q$l>!|4; zseGhV%&nK+*|+P~^-XN-p@az|46~Y*KFYqS*B)i|!z)Hio87Tbx$*L8Y!M%NVHm6B z@pGov&r`~j4lZIPugQcBmtMbS&Gn`FpKqQu z>%!L35mLuhciwqbyEHI2)9K8RZr9(peq{Tk0&86(Cet*Z-hwgudNG@(+g@06{I`AQ z|LU*KRY7OONduJ=jV5Re?$msg7Joy0n)oPRq{Yi*#z%qs@0ktD&uqPrwe`$GN9e<| z>#iEa2E2T4`#q7j?%cvZPDo2j=*Xl9AW#b5j_>Hpo}jNXNtkB|^ICkjZas5mtN(Re z)tmkBsOP`Er~TfMC6*6Cdvj0+WnxXC2aTsU;z;sNA4ouy%caM`r0LVX9EeO zYS#4j5ndMWV+lSM55q4D5s`?a{WEM{tUwldbgp4s!n3ZRRq(!DAhW9D9S+G5|QrX2Oj*vFCS1YFs{oi^^ zIqCDQ>Gpqj#t=(n#^4N65thLj8G|iDW(>|4OzMUqxITX@>sLQz=XhUFC*Sz29&sZ6 z%;y)Wxn(zHT@nI`+zI&w)ww(MnQb5n_jrx+dmvYO?a}A^E`|!i~B1M{y_6Pm?06NKS!kfclVKmqz zX6HZ&ddNwgDbVI5%_-=Brb|?lI@!R!9SEM-bH;csa0iotBEwpyUvvD_#>wmEdmHM# z^X{Lt?k`6ls(pX5A-%UbGGUmk{CM-y&u(R@N9Mh^an;ggTc*`5y`?IxJ|@0z%wHcG z+Bn>5j!NkDr>ADTs_09lJ%?Uj{ot|U>GPH@nK!-o`3D}{d&O{lpSXm`WZQL4|H);C zS@gBHZ`*$RwKvLDE!k=Du~)@EbTm6RJ0U7Ab<~&(uVnX$(&n@+AbqLW*BOWtZ>n`L z4$(FO7?NnG04zduUxDPHVC5|Y9OA`Vq0?N|WDxHfpb>(k4qNkdIY6{bnm!3Wdfa)U zjf)oA4p9vqUtz1@idoXzLVG*C*M&29Xfs*5pMtc5ojfs{?>?k%pG5bH3e)4#&F++b zQqNc@x{mIQ>{6?uOU{<&oBAY&M&}`Lzm&*=(RvBeeELPi_D#$-^+OT6m0RWipCrni z5fxhPTY|>A2_rT!{}sw6{z87KpxVY5zNaKp0p{ouZ2!64S1WkJsyBhQxC4JLBdx&cnaM zI$#W5?%IR_nhw59IYJcnfBqCFiMzLd_{kR1w6#Dn67d6oAro(PBv>Gd6gwv-33trI zG28!;BumJKh)n>S;?T$~(ocjDU?)QU*Tf2z&4#874;{(|;zD_g z^4`$U;VH@+%7?M=M1cPgi5`!w(=XWn#C)0VzKzn&(djI4ID(0bVkCBkCX4F45mQ)k zAP|DVSi&Ni4jaqNAgSQ4>7qAMG4_H%Xi1R|=rhSxAV6A#f!o@YCh>}yGpQn4W-=Y; zp;IdDrrsudMQ=o#bWL30q ztDc+VIK-}TeQbz?C-N-j6mz@@FTeN7%z!k8Og!cnZiqgrlP6hl?E_B|iL-V(RfemO|2+_EP}Cpsyjjo^SSn*I zh)(R!AfOMe(|xbq+z~!{(TnvDe-|A-e*9%KUD>Ifx=XvZ!^e$FzVX=#LHDm(R+HO@ z>wJ?xN$Y3O_e<`u#8-ObQf2b|vv2XryAS?+!uM2?@+Y;wPOS>uE+7NzC{cgRx*xj=7It$h+(2BjsX^>%pi2m;2Oo#m-1A9P$; zg{-FaO%4y7T$J0n?0dGP&@y=pr4V*zZUWnA2(s0xv6^lDO zs5P8ase4vkGZWfG)ut!G$HNURHy-{`Y5Vc;jU)Z@E=vLbUf-0VGfVs9Et9AF3LC@b_)PKER=GU9Z{Oi^dH(pK z%y2}72t!kolcM!ueKXVIX748AawgnPbS;BYW>GC@!W8U zGLi3!Pf1Ns^472V=;wiBDzdUF#ti%!bGXj)*gJ1AMqxgK(=-;ZGZ8~INwo(bb#TKD z?WAta#SCWHI7JKVW3%YY2uk0geDJ|(+W*6zBDMupw_5o&mQIUQD9R)5MG1b79FmVISd?f#Gr0Z9 z5^)n6{1#ws0Xrb_mc(e^Q`h~N%>Xtgwkf5bNKCom+R5RG%KEm=%JFw+$Mj;e+E%iV z2DVwb5E=Rn=+um-%8C=EoH>P%o^|HJCF^}{I~*z7=!KwCgkfJuVNpnU2f zU9?oTYBwrexAjbGuDQ?fm^fp3$D?!}rk=m)U%OoS z$2Mw#CEY-UaY-_}?Bi`L;qsZgqf_H&Em|}yJ~evx1?@PEz*Srk8W+ngRQgh_sVzgzZZo^v-G#;d~}_za~YcH){Di`+6XNb z8@a4=<6FO9Kp&pY zAc0f6R1)Z*CQZ30y=Nr|6#dVYfJRW%-$S|T)fYopB#?&Dl@YN*eHy6)CEjWaZlnv#VJe^ZN?b`m`?g&JdVv%3sutP{oQ zO(MrL^uNV>%O4OJ!Vrw8iFgJ+8Uk-6tC*}{Cll4Y!y=$qY{40zt@W9 zS7{LD$300AZml0a^7!LN4zry0doZnO_0_LiSML*t(EOL%=FYv1SL~r)vPXDG|6H$} z-4)$~Om&N1BUVQsP&&cqOMpn}j)RMtbMazG-8^5q<@3|qO4a@b1|xmc`0-InJEoO_ z29|C+{rMJLir07kqI_c_+E58OtTVu`^*cC+skNYMIHeRsSM4=KiD?-hB!GmRIHeRF z3cMmTiAgGB**NUNaHE5iWYim~3#-%|(LvLgu}60sSDx5c`QiEF%H~mlqxVcOhphPg z);S+e75LMw<&{5WJhxgnDmwimr|{q2^2rv7MZRtO_*PV;)QSp(1Fl8bKGx3^R8!R1 zvd*fr5a-*T(&yBx#`?{l%)Ry7d!y7oSkXPy*s2g8FiP1J->+BOHu2fsp42DpI4jSd zw_5q7-GpO))kWC{7u4ZDwX=`0sKe>HhW}89z?uI@c!Puq`>j^3Dh2L|X<#u#;R5@* za4s4zhqrXE8dPDr^3$`Q?hV|If`bFL8+Bd(%S}nWSj67bdspvzOY4<7pdjvsoAw0c zb?fB79;sACK4I-i%}{sGDD9~k3$BX#EzOSE!!jOukwx{%SYQ{u@$VWMLMAr`(9&(J zbz5nB7wRb$+ejY6#qsn{#07y#Y!H=fF{-F0TJf2FGpZI}WT?dWD$r09fr*_!u-h10 zH46SE4lf3S7;UKe-Ep=i==~*)x3Q7wJqAvCQ#Lr;Y(59 z7kZA|G+rtH660?v_FysoLJl>DKsg)<#}*aax+XO?u|5tmiv}4$fK~bP$4HxVi_25`O|^S5B#ZdrniWoSu8~foadNl4l=b@tgJf`;_yWRrft= zYVA+-WMaBFSE4;8bsid=-_gKY#<2kFnl8|kQ{)H(qJ}&jT~kaVMKlBG*gzTKwKSpy z)G1xZ+ug@}Mss;_MxE8w3o^ljiHj(pun@K@ef}7#-Osh3hX?`>9%ORuZ zm;07)K5(GJLT-i@Yi8SyOe>%C^_r3r_D;yA)sKJO@dP}kWP(KnTMW3&9{ckq{&!7#A`1>)Kw&J|b4{xOPF~9`QQR+7wKF(iKZ~zEQuCMepc0an8>A z(aZXTW`(6C4zOlJYT>|Xru2ph!$)5?t)h5Fd46idhff_)&h_fkD=m>n6^tL4C_V0c z^{$4(rOKw6FYLJG%8HVldj{4FoH)j62z{{c^e@@8v=I%HR$pBJCA zo2{1`GDeqFg@;CYZvJL_ZSD4N6ln9t|F97xnk5~aH}9bG%>#egp;Rq*&O6Ah*M%5D zEdz6GWrJ3G8m~29KPpj*NQhr;>nb7KZ3_#n=?X(>9hMUm14XyUej&@=Hkcm8x3k zP@j}B9k*jjCbT7Yv%rr3`+q@ds)D2%j2icoYl%KRXyPJRNk=*{GeZDQ*SG6@(a?e@ z2GR`~T{>hILRKN&>!9fzmiv>+gCvS*A26kR7=d-_rge(tejA4hUA+Gn$iY}u2fi-n&* zAD3(gTZ*!&>>7`$D(yl?Z3-42@uxBT1kun!G{i!jGfYQgbf>Nj2k>IEhvVwj+O;PP zQ$BmBqavjrr?Iz!!B>xPFej4l+KPuhgSmy06m(jgc_s?37F^h~n6MKJwso5&$6_m> zy>L9Dm}%6twkl_f*%(Du*5glRV~Ultt*zLV9mVFeQHsv_zEP)Cw6?Uiw@Rcj2yT;f z7mz%D)V83OpqDfrWDBQ*h z_nx_cIo9{$(I~_WTL0qG_LfC27!F4D?;my0@WLXgW$BA;t>TR+c9g_N(GQ!0J<=9^ z`;XEOKKMlGcfF?ihk5y2eH*o+1E+7o$SUZz$?s-MeNvX~r)+g}w@@BYNu3u!hnCVQ zG|5=S)kv`5(8YY11)~?8Oj+V^835PZ#nrF^ldfaoGNbawzmio{o(%BizM-U$RG@%fd{DePr z)MW*QF++8aliaBONDsP8K|6GE(?jp_hgpQv^k7~^Tj<~inailps$dw3Ta*QUA}!Y4?;ur2xOJ}?A2Mp=K@DwkpU>#{N6+t)3N0%Sc75)g1 zw7c?%xCTK*=v#DGl0x1FL3P=KX~0h>>9lgeO!-HAA|8sD?7~fT7x|?0gDMyg!3a2{ z0k=UaZ09d%gARhHvT6DZ0u^6a$}mA?C>iJy6ZvVq1w8~@q1>3%{MKDX9?UWx%2YN{tOp7iBc}s!2P;gHX zszoiQ7A{qkL4!xw3d&pu-l}SRj11(Gv!UxEp&v> zAvb~rOgiedlj0EJT141{Abgh&cQWgtQyOL{N{`$KmK61UnySOC3F*0Ez9tAy?N8<) zeK4KZT@v&oy(@h+PlRg~7zGwGU&AYDsC z)HBLa3b$BF3$#Fi>IlXM_cHh=2kjbMFs|;p9${DoU_?>G^oU0zM@MdtN{kv8wKe*>=oQhQ#|(&hB({HSOPn>H$Ipo0n-HJi zf++bFiS0>wNehx%lg=imBv&V&>UCYO{V4-drlo93Iht}NH9fT~)s^~8>KDBedspXDe#SD)a))KV<&%t}j71q|GG}CN z&s4IOWt{}4)K~o$_1lk&=@WA1=X~A2qJM4w9sN&Vl6XnwC0j4~Xh6k)?YZXMg@fV; z?HY7qaPHt0gHH{~7}7H2lf26OSBR%Bae`@U#G z(Hq56iqDlSDNQeRmF^vC9D2?0>fuk9MVAdNTT*tud_hHYMOnqX5mQFIG_v=|Wg{OQ z`SqxYqm&vEGw*T^Jm!BOoc1**VWn&&4vwzIFvHizZj;$U0(iQqE zrd;vEIM2A_SJqv*>8j|f)?9UVyk~stgxCpn6V6;c?dr8xpPraJan8gauDN6KfhiNG z?7cSp+LCLRTzmAo-q$r;_smq?)B#hknYwW5_Nm`bE1R}p+H2F!UqA8sUDMO151ZaH zUAdv+h8^@bBYDQM8DCUY&g?&Pt9`6}h5d)>YpNfqK2(!lb64$*+UIJ2mUHE`vQjs= z?uB}D{rvi;8xk9qG@Nj7$4JK_$7{3nvkGTTn{}cwywTP8bmKW^wex=G*{1ZShNg8* z2VG{@4A&#BbM7K{i~FD_-m}4TZuXqnN4$C7g}w~mM&Chyq5rACfWVG91Lka>+i&j9 zd3nth^GoJ0od5of{cm*LxOYL~g0Tx0+?0OPft!?tl?y!!*DZW);n|xjZ+6{$Zqfe5 z)r-GaGGWQOCEqVCT+9k-vo zW5OK=?;LmM3wO=CYu8;r-#z8-l`E51o?W$O)%UAQR?k}f+&w948t(0X@2Rz)+;{2$ z*8@A(Wvm;!ZpC`zdguC&HjLiz!h=&D+`DnW#`zo1J(RX-#-`SXS3eT_$m&PhH&5Jr z{L#8ck8hc^<&~}JTQ_Xu+bXu5*nZ-%B|EZq%-C`0@#@FV?CiI*Vdu#w!k>6$mu{D9 z*UnvSPi}uIe7AA;%-#1tZGF1#&(VMO|M~1Q+n>#N_L=8KKL61Rd-tw*vF)XkFAshB zxmQYF+4^e9t1Yj-*1Dl}Z|k@Fvi5D?U$lSu{?@-t{L34!RlMH+^=IA)ePhKNuN+7| zP#S_#vtB{R(AMtC}L&8 zCItnHlKO49(1O7u2trCENsDq?z@)e!8bLvjI{vPikf(VB0ja zN%shg*34#HUwv9Lhv?$jLCqYd8^Au%%#pfb+^m@o=8h+XHx-IivUt-3tHS3MZ! z5jZt-Lca**6E+zqxH4P`x)x=xMC>laIRgCFPuA6mxYAJyH(dOv zBl7vZdLx(`gb1cu2MBLB7_w7sP%K`gQH$_Rq7EA2W``@eJ0N`|08=m)7of;igU~*$ zPQ7rUR_I=JH)FaBhtOFi;G z{P-Yvf^ANR7Xx*7K_1o$aQCm&tzr_c>lh&Y4X-~zGGizUW8rw!0SrXAskK^nH;aY@ z`&c|{70(h_BJN5hvtBF(cY}LF+98P$Nyja#3~cgbfvd0|1Tgexm#_hl|D20w?dd(X zJeH6B?*dlHY!Et943R0NY$)Wy3}eF~AEq3TQ4QvLh!jqVGR?TWyEt6Rtt7i?&!Dg{W zye`tjT+EFb&1_Jef9fJ|?&V{C7GQJOT-*n0#(v+8YyrE8Eo3+2Ap91#h%IJI*iwj> zzLhO!x3LxMc6JB5likJcW-Hk$wwm3;*06ioT6Q11pFP0VvGr^Ndys8p53x<`VaTi4 z%pPT1*jBcUZD)_M9qe(olRd$9u_xJ6Y&UzF{h2+(o@LLm=h+Kv58KOLWG}Io*(>Z- zh~M7F_OrjR*Vyaq4cv%2z}{j9+1u<8JIs!-ci2&Oj2&n1vJ>n*c9Q*-z0W>ir`U(= zBla=-gni0Rv(MP)>~HJ~_9gp@{hfUc2H$VlKiC=e9XreZ$-Za*Vn48dvvcf6cAovj zerCV0Hg_r2JdVfn1fIx~ zbQwIE_ku+CRNkBS;c2`tPv;h%fyWKAcsB3Hb9jG#2_L`*@?4A>gZU7i$Mddnj53|_@&ayzfq9p^Q?mdm`3*YgJM;Inumck(9g;%@HY zv$>c1xSt3396p!NMB)w#ijF4AomO`XZT<-{%BBV$u3a@L#NU>6!6fY%6iBgi3EcKF7q*UD+Q^4iO z%NvnLx-~B^sOM{TtELxddZDJ~wo%Lj&x7z0Ys=hSH}>Zu0n>^#Pyk)z>+kO=f>XmDBF6m$|>e zL}rK2&)tniuiWIGBb(;C-Az>vms#lUfM0Ug)fs(`dY9cP)wt^oey`ovpl@(D$!5eR zSJ|C@z2DI!>%DG!ZFsGFuFDAnIh%tPW57dh28XNKJul4Tv^Q7PIJ`AZ8EJZCyWixM z>%6kB!Aw~Z5jx#9jruyLy*?C$sr59tU9vB9j@ub%lB8J_w%k%tI z4YH%Y!5=Eja~-w*hEVv`yQ-XWoj+VP*2pfu>bUJ4$enr8)ken(xip2`yDaMdE5 z3a6Px*vLA2jZC#xHOEmayGGwBVJZ>{XOp{8=n=C6GO7fT zP~Z@UtIn;0`D(nf?D93Z{Sg|NiWMOMR867Pc3047_j=uPMNNjOMv)7%Y7TfpRfE6? zQALDD$d1o3U#_YPIGy2|+1F%uI-})zHBNhzy(?S#dPkjK@09Iz=p$a)EH?wu&>A6R zsByY|ayaVC<#5%DycyVvNoyK3D{rW$us6WZI@WUqJ0{?K531w38# zNcjW0`{&BCKLSPfcqqymblC7ZV4>_)6ARNUl!YiQ<8x%M-+>fkG<$>F>zEJpwL3$A z@l`dz3xBwOuEP(!R4bm4jL=@#!c~l~LgHSx)F?OW(VKl{Ez7V$YT4-wtD$PGL&f^#&;~SPm5SZMNd4U;OaV`b z(5XUVROGC>h>@{9Ttoy>J)8obozSc3-2<2#Sh23#s-xtjuK_R4?fFDiiX%6++Jpz9m9=*>#M-HXdsj3E| zHUi_^ULY3_IJw&iis5xM%KipKSl)q~p5dSV35Z2AXfHstyLs93lzlutVenLicQq@4!8m1aWU7_EAvb%hGpW6#m z!$*LbgbAG|IIw2fq4c&{i`r z-HW!jgCc_Fg@U#>fM^Ds)n?EIv~#^2DXLgxgNCkf)v98uiH6durrI#T`WxInRK9HX z1sr~AF*6|*rD&|dKqbodgT5(6|#~Z$j#JSB-3Jl4~0s z{;)dA5>lBZBkMB8fd*0U`ntS2Ii}VfKtoj_pZHQ`#`bVg@vnyy@UMrRS|#)%e3)t! zfM(T96jj7eK~1%?uMxwB(P{UPCJ@CR-sG;Pa*5s;uHn1Dx6s)Ew_nX#m}*qp8Krf( zP#86=0i(aOIaDJBsF>*PB#`Pbsv8+3d#F6mLtPX`v@ROZ;}a7QgRco0G1Os%a7j&a zgQ*^)yT@K@2ALChVWznRfkg^~AT7Y_S~KbxqnF)@9#kubhzuc^GpdW;X#@zwL>(+d zr`OkjiiHqJ6^6@3A~wKEeU-JiG_2dm66On_N22>WJV5I}wQ54Jl7etgVE%lnJBM5& zV*sTHX_gat(MS^=qp!gsJ8L6@1C5%S7#gCgKwg1E0f(;vHR=VilWE|YS5pfDrH$Hx z0tf`@;i4i)4<{l}-GKywYVbEXZTcFYufPc01j!6lsVY^ZprSsEj&ZLj8XVKZM*fJd zppZVc@MesrfofSD+BA!P9-29XKEk;x3{|G77I=e6HAp%pfI;GgITq~oUVD?V4s+T@ zuVk-v>Fe@~^CPPr{%R0*P-C?jKnb1RFu%}*Qvq%{&@lq@kWEK5jV->$W)B86cfjkL9l)S~=>Sm0ZL9-XcFKDC&;agt zcqCtdnzpFOM2j2899gOk)blxwhPkq%+Kq*S3;zgEY>gCUM|V&uH@Ouis09d)!A^Aw zPF_WkwQkG@#PUO{{Nj@EIhcxLRx0v@P$hX0>c}P>s@&vcrB4BUsI5wD^eLiGF?~wt zBbIHI`6KdB*YVJsFZ+838=JGUsaeVAgaj(h{8N1QfRG0^#!aM@X&!Z3d<`Ymp0p%l^!h9rCm`@P-1d&e=`C8sai6v@f{wRX8 z5}cLbtOREzI4i+f3C>DzR!XUWQYs(_aLM9B5CvNHMr#p{7Hi(h{Lvx=ffi^tVQF(m`eZ3M0%6D3nj5G4dr zLJ))(g@hM{gcpT`7lniug@hM{gcpS+1W`&5r367pQ3#~Kr%+#K70n2wfJt}|1R;eD zNP!O^Y=jgxLJC_R(y-+r4I5#EjWEJS7-7pRHO!GgOJO9Guu)t#LJ1q8gpE+bMkrw; zl&}#>*zze6D->3J9Wr?l-V&_Su?ry8j2p&Q&b{ diff --git a/app/src/main/assets/ic_soft_recommend.png b/app/src/main/assets/ic_soft_recommend.png deleted file mode 100644 index 67af3bf1c99a92f01a93aee51cc0cf81378b7c6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1943 zcmaJ?c~BE~6b^TcMWl*?B5VRGXikz4k`f3>2uU@F5CuVmO|m2@Nj7elCSa?83Zg~9 zqooSg#sd`u!PZ(itbk*+R$=gf0`;f@);d3}d+&WSTND=? z<4%}Gz~ON2GO0KoTUquO?}~lTS!X}M79TV^2~B`APz#7axF|KOgaDZV)IjkNsLoz} z0Sd?AoPu2i|@((0r+2$YZ$t5D@+s<>)WWCRdyuW2M;ECkKu zlU|ETlE(oe7=Zvbl}%C6Ll^*uOJ%Ux98L%s2%$4rG&+OEU{V-d9*f1J(}6b+3Co74 zGkEc0$(vl*iBHm^sEJ3TSu7T+g-L}G4UNI&a%uDsT1W^5i=ddZjVNfP7|j9W3}VQv zLUbln2O9x9BdCP4P(BG$`nm*z=`F3%{H9GHY>7C5G@`u!&!(58(c6~>YXnZhU` zlR1tR!>TL;WJJfY>UY@C39)uV7))4ZF@)$ohSU-SHUMLV^K=tyVNS^R2CJS}3u{6w z4HHANkN02W9>2moWZ%9uFLroqf5?b=9>L5#b3bDMhjVt3iK7(OU;g+qQ#yU=^z&DK zAMHw&{aLzE=|RUI;3VswN4+P+U$uF7iv0s^O3x1Rc4@xj<1M9LUK^cV_~e|p-St?glnv@T^QhHu4<8IHO0@ISVg%()4KVH|;;d5V6m$|(4(Pe5h zAvgUffo)BASctk8YIPap8Qv65{)qum`zY~Dz=l1Q=TFc2`|KCW=2`E1@6P$^1@Yv8 zq|u^72Zf4{HlJT}iksr$J1O?!b46|N@`jRHVo#?g!t*vPAvn~`Ud-;PxciR zZ?a#>LEG|Ez60djRlOtk9@thc-yI(LTUoXI` z!a4+&wTsz{QkxbkoeR<;7tLJqa;*c;c|~rR_eu`>X=zsLE^W0Uh>;job$gW5K8RMY z$l|(b($;Bn8^OjxMfbUraj#q+xdBZ3av}IZ{fhD>c4*CT%le1=^jWfp8woUOi38k zzdSL#mE({%>Tp`j3x%XC}|CFMjnZb2mhm~ZW6o`i~}G7}|U< z<&?*V{R>IS0se7KtI*VoQ#Nev)>k|94;(+dCKT=q&i2szo17$NMg6V^gMx0CUo(II zYLe8C7Biz>edK2Ixz^G`eu-jP%bl}xKC`k`zkfa*+<_?PA3FJYN@H3pVl*@#{?VaG zuOaltZi`uxQ1_C^O(@BXNvtZz{Cq@E`rGutg5p79hry<|#oKmDo$9Cd%{?tdcWApF z&KjQF 35 ? String.fromCharCode(c + 29) : c - .toString(36)) - }; - if (!''.replace(/^/, String)) { - while (c--) { - d[e(c)] = k[c] || e(c) - } - k = [ function(e) { - return d[e] - } ]; - e = function() { - return '\\w+' - }; - c = 1 - } - ; - while (c--) { - if (k[c]) { - p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]) - } - } - return p -} - ( - 'c(!1k.2G){h 2G=l(){h p={6b:{"1o-U":"","84-2d":1,"83-2d-82":I,"1M":v,"8z-8H":I,"1H-2L":4,"3j":I,"1y":I,"67":N,"8B-8o":I,"7X":N,"5h-1n":I,"1F-1m":N},M:{4Q:I,6f:v,5o:16,5k:16,8s:N,8G:N,89:"58",1g:{5p:"54 1j",5b:"9O 1j",5j:"9P 6k 6q",76:"9N C 9M 26 9J 6q 9K",3o:"3o",6F:"?",1x:"2G\\n\\n",6M:"9L\'t 9Q 2V D: ",86:"9R 9W\'t 9X D 1F-1m 9V: ",78:"<1F 9r=\\"2o://5x.6J.6u/9y/9z\\"><6y><9F 2o-9G=\\"9E-9D\\" 60=\\"1X/1F; 9A=9B-8\\" /><39>9C 2G<2Z 1t=\\"3H-9Z:an,ao,am,al-ai;aj-43:#ak;43:#ap;3H-2L:aq;1X-6z:6A;\\">2G6O 2.1.a5 (a6 24 a4)2o://6G.3xa1 a2 a7 f 1m, a8 8P 6k 8N 8R 8S!8W C 8V 8U.8X 8J-8K 8O 9h."},8C:N},1q:{4U:v,9g:v,3D:v,6g:{}},2n:{},8l:{9f:/\\/\\*[\\s\\S]*?\\*\\//3v,9d:/\\/\\/.*$/3v,9e:/#.*$/3v,9j:/"([^\\\\"\\n]|\\\\.)*"/g,9o:/\'([^\\\\\'\\n]|\\\\.)*\'/g,8Y:/"([^\\\\"]|\\\\.)*"/g,9m:/\'([^\\\\\']|\\\\.)*\'/g,9k:/(&X;|<)!--[\\s\\S]*?--(&Y;|>)/3v,3Q:/&X;\\w+:\\/\\/[\\w-.\\/?%&=@:;]*&Y;|\\w+:\\/\\/[\\w-.\\/?%&=@:;]*/g,9c:{F:/(&X;|<)\\?=?/g,19:/\\?(&Y;|>)/g},92:{F:/(&X;|<)%=?/g,19:/%(&Y;|>)/g},91:{F:/(&X;|<)\\s*1m.*?(&Y;|>)/4v,19:/(&X;|<)\\/\\s*1m\\s*(&Y;|>)/4v}},1y:{18:l(3f){h 3C=Q.1N("3c"),5s=p.1y.7d;3C.L="1y";D(h 35 26 5s){h 6h=5s[35],5r=W 6h(3f),1U=5r.18();3f.6a[35]=5r;c(1U==v){1J}c(7I(1U)=="90"){1U=p.1y.6l(1U,3f.1h,35)}1U.L+="5v "+35;3C.2u(1U)}q 3C},6l:l(5K,6m,5D){h a=Q.1N("a"),5M=a.1t,5u=p.M,5L=5u.5o,5N=5u.5k;a.1Q="#"+5D;a.39=5K;a.5g=6m;a.75=5D;a.27=5K;c(38(5L)==N){5M.1W=5L+"73"}c(38(5N)==N){5M.2s=5N+"73"}a.96=l(e){9n{p.1y.7a(f,e||1k.6V,f.5g,f.75)}97(e){p.A.1x(e.77)}q N};q a},7a:l(7f,7e,7b,7h,7c){h 5G=p.1q.6g[7b],5H;c(5G==v||(5H=5G.6a[7h])==v){q v}q 5H.2B(7f,7e,7c)},7d:{5p:l(59){f.18=l(){c(59.T("67")!=I){q}q p.M.1g.5p};f.2B=l(5a,8T,8M){h B=59.B;5a.8v.4u(5a);B.L=B.L.E("5O","")}},5b:l(71){f.18=l(){q p.M.1g.5b};f.2B=l(aV,bV,bW){h 3Y=p.A.3E(71.5f).E(/"+3Y+"");2t.Q.4c()}},5j:l(65){h 3k,bY,5i=65.1h;f.18=l(){h 2Q=p.M;c(2Q.6f==v){q v}l 1I(52){h 5e="";D(h 56 26 52){5e+=""}q 5e};l 2q(5l){h 5n="";D(h 5m 26 5l){5n+=" "+5m+"=\'"+5l[5m]+"\'"}q 5n};h 68={1W:2Q.5o,2s:2Q.5k,1h:5i+"c0",4j:"bQ/x-6Z-6U",39:p.M.1g.5j},5V={bP:"ay",bG:"bH",bF:"5g="+5i,bD:"N"},5W=2Q.6f,3O;c(/bI/i.1R(7j.6B)){3O="<4d"+2q({bJ:"bO:bN-bM-bK-bL-c4",cl:"2o://cj.c7.3x/ce/6Z/ck/6U/c9.ci#6O=9,0,0,0"})+2q(68)+">"+1I(5V)+1I({c8:5W})+""}G{3O=""}3k=Q.1N("B");3k.27=3O;q 3k};f.2B=l(co,cn,63){h 72=63.bA;6S(72){2O"7l":h 64=p.A.2I(p.A.3E(65.5f).E(/&X;/g,"<").E(/&Y;/g,">").E(/&aT;/g,"&"));c(1k.74){1k.74.aU("1X",64)}G{q p.A.2I(64)}2O"aS":p.A.1x(p.M.1g.76);2y;2O"aP":p.A.1x(63.77);2y}}},bB:l(61){f.18=l(){q p.M.1g.3o};f.2B=l(aW,b1,b2){h 29=Q.1N("b0"),1G=v;c(p.1q.3D!=v){Q.2Z.4u(p.1q.3D)}p.1q.3D=29;29.1t.aX="aY:aO;1W:6w;2s:6w;F:-6o;4G:-6o;";Q.2Z.2u(29);1G=29.5Z.Q;6D(1G,1k.Q);1G.3I(""+61.B.27+"");1G.4c();29.5Z.4Y();29.5Z.3o();l 6D(6I,6C){h 2E=6C.4D("4e");D(h i=0;i<2E.u;i++){c(2E[i].6i.70()=="6P"&&/aC\\.1a$/.1R(2E[i].1Q)){6I.3I("<4e 4j=\\"1X/1a\\" 6i=\\"6P\\" 1Q=\\""+2E[i].1Q+"\\">")}}}}},az:l(aA){f.18=l(){q p.M.1g.6F};f.2B=l(aG,aL){h 2t=p.A.4M("","44",aK,aJ,"6s=0"),1G=2t.Q;1G.3I(p.M.1g.78);1G.4c();2t.4Y()}}}},A:{Z:l(4a,6L,3U){3U=3w.aH(3U||0,0);D(h i=3U;i<4a.u;i++){c(4a[i]==6L){q i}}q-1},6d:l(7g){q 7g+3w.aI(3w.b3()*b4).2h()},6c:l(47,46){h 3m={},28;D(28 26 47){3m[28]=47[28]}D(28 26 46){3m[28]=46[28]}q 3m},7t:l(4L){6S(4L){2O"I":q I;2O"N":q N}q 4L},4M:l(3Q,6W,4H,4O,2R){h x=(6T.1W-4H)/2,y=(6T.2s-4O)/2;2R+=", F="+x+", 4G="+y+", 1W="+4H+", 2s="+4O;2R=2R.E(/^,/,"");h 4V=1k.bn(3Q,6W,2R);4V.4Y();q 4V},7y:l(1E,1Y,1Z){c(1E.6X){1E["e"+1Y+1Z]=1Z;1E[1Y+1Z]=l(){1E["e"+1Y+1Z](1k.6V)};1E.6X("bt"+1Y,1E[1Y+1Z])}G{1E.by(1Y,1Z,N)}},1x:l(z){1x(p.M.1g.1x+z)},4P:l(4h,6N){h 2w=p.1q.4U,3W=v;c(2w==v){2w={};D(h 2W 26 p.2n){h 3g=p.2n[2W].bx;c(3g==v){1J}p.2n[2W].U=2W.70();D(h i=0;i<3g.u;i++){2w[3g[i]]=2W}}p.1q.4U=2w}3W=p.2n[2w[4h]];c(3W==v&&6N!=N){p.A.1x(p.M.1g.6M+4h)}q 3W},4x:l(z,6Q){h 2C=z.1O("\\n");D(h i=0;i<2C.u;i++){2C[i]=6Q(2C[i])}q 2C.5A("\\n")},7A:l(z){q z.E(/^[ ]*[\\n]+|[\\n]*[ ]*$/g,"")},8b:l(z){h 42,4E={},4S=W V("^\\\\[(?<4T>(.*?))\\\\]$"),6R=W V("(?[\\\\w-]+)"+"\\\\s*:\\\\s*"+"(?<23>"+"[\\\\w-%#]+|"+"\\\\[.*?\\\\]|"+"\\".*?\\"|"+"\'.*?\'"+")\\\\s*;?","g");2r((42=6R.R(z))!=v){h 2f=42.23.E(/^[\'"]|[\'"]$/g,"");c(2f!=v&&4S.1R(2f)){h m=4S.R(2f);2f=m.4T.u>0?m.4T.1O(/\\s*,\\s*/):[]}4E[42.U]=2f}q 4E},7Q:l(z,1a){c(z==v||z.u==0||z=="\\n"){q z}z=z.E(/"+2j+""})}q z},81:l(79,7i){h 34=79.2h();2r(34.u<7i){34="0"+34}q 34},6p:l(){h 40=Q.1N("B"),3J,3i=0,4y=Q.2Z,1h=p.A.6d("6p"),36="",4A="";40.27=36+"6e\\">"+36+"1n\\">"+36+"2d\\">"+36+"60"+"\\"><4t 1o=\\"b7\\"><4t 1h=\\""+1h+"\\">&2m;"+4A+4A+33+33+33+33;4y.2u(40);3J=Q.b6(1h);c(/bb/i.1R(7j.6B)){h 6v=1k.bh(3J,v);3i=80(6v.bg("1W"))}G{3i=3J.bd}4y.4u(40);q 3i},8c:l(6n,6K){h 1H="";D(h i=0;i<6K;i++){1H+=" "}q 6n.E(/\\t/g,1H)},8D:l(2F,4w){h be=2F.1O("\\n"),1H="\\t",62="";D(h i=0;i<50;i++){62+=" "}l 8u(3n,17,8y){q 3n.22(0,17)+62.22(0,8y)+3n.22(17+1,3n.u)};2F=p.A.4x(2F,l(21){c(21.Z(1H)==-1){q 21}h 17=0;2r((17=21.Z(1H))!=-1){h 8r=4w-17%4w;21=8u(21,17,8r)}q 21});q 2F},3E:l(z){h br=/|&X;br\\s*\\/?&Y;/4v;c(p.M.8s==I){z=z.E(br,"\\n")}c(p.M.8G==I){z=z.E(br,"")}q z},2J:l(z){q z.E(/^\\s+|\\s+$/g,"")},2I:l(z){h 2a=p.A.3E(z).1O("\\n"),bf=W bi(),8g=/^\\s*/,20=bc;D(h i=0;i<2a.u&&20>0;i++){h 4z=2a[i];c(p.A.2J(4z).u==0){1J}h 4C=8g.R(4z);c(4C==v){q z}20=3w.20(4C[0].u,20)}c(20>0){D(h i=0;i<2a.u;i++){2a[i]=2a[i].22(20)}}q 2a.5A("\\n")},7W:l(31,30){c(31.H<30.H){q-1}G{c(31.H>30.H){q 1}G{c(31.u<30.u){q-1}G{c(31.u>30.u){q 1}}}}q 0},2S:l(8i,2Y){l 8p(4B,87){q[W p.4W(4B[0],4B.H,87.1a)]};h b5=0,4s=v,3Z=[],8h=2Y.4K?2Y.4K:8p;2r((4s=2Y.3K.R(8i))!=v){3Z=3Z.2l(8h(4s,2Y))}q 3Z},8m:l(8k){h X="&X;",Y="&Y;";q 8k.E(p.8l.3Q,l(m){h 4k="",4l="";c(m.Z(X)==0){4l=X;m=m.3M(X.u)}c(m.Z(Y)==m.u-Y.u){m=m.3M(0,m.u-Y.u);4k=Y}q 4l+""+m+""+4k})},8a:l(){h 3G=Q.4D("1m"),4i=[];D(h i=0;i<3G.u;i++){c(3G[i].4j=="6e"){4i.K(3G[i])}}q 4i},8t:l(4n){h 4m="",1u=p.A.2J(4n),3L=N;c(1u.Z(4m)==0){1u=1u.3M(4m.u);3L=I}c(1u.Z(3P)==1u.u-3P.u){1u=1u.3M(0,1u.u-3P.u);3L=I}q 3L?1u:4n}},1M:l(8e,4p){l 8f(4r){h 4q=[];D(h i=0;i<4r.u;i++){4q.K(4r[i])}q 4q};h 2k=4p?[4p]:8f(Q.4D(p.M.89)),8q="27",2v=v,4R=p.M;c(4R.4Q){2k=2k.2l(p.A.8a())}c(2k.u===0){q}D(h i=0;i<2k.u;i++){h 2T=2k[i],1T=p.A.8b(2T.L),1L,2D,1P;1T=p.A.6c(8e,1T);1L=1T["2V"];c(1L==v){1J}c(1T["1F-1m"]=="I"||p.6b["1F-1m"]==I){2v=W p.4b(1L);1L="b9"}G{h 3S=p.A.4P(1L);c(3S){1L=3S.U;2v=W 3S()}G{1J}}2D=2T[8q];c(4R.4Q){2D=p.A.8t(2D)}1T["2V-U"]=1L;2v.1M(2D,1T);1P=2v.B;c(p.M.8C){1P=Q.1N("bk");1P.23=2v.B.27;1P.1t.1W="bu";1P.1t.2s="bw"}2T.8v.bz(1P,2T)}},bs:l(7x){p.A.7y(1k,"bm",l(){p.1M(7x)})}};p.4W=l(4X,7B,1a){f.23=4X;f.H=7B;f.u=4X.u;f.1a=1a;f.5S=v};p.4W.1c.2h=l(){q f.23};p.4b=l(4F){h 3t=p.A.4P(4F),2p,4J=W p.2n.bl(),bo=v;c(3t==v){q}2p=W 3t();f.49=4J;c(2p.3N==v){p.A.1x(p.M.1g.86+4F);q}4J.5c.K({3K:2p.3N.C,4K:7E});l 3l(4N,7F){D(h j=0;j<4N.u;j++){4N[j].H+=7F}};l 7E(15,bq){h 7w=15.C,1l=[],4Z=2p.5c,7v=15.H+15.F.u,2P=2p.3N,1p;D(h i=0;i<4Z.u;i++){1p=p.A.2S(7w,4Z[i]);3l(1p,7v);1l=1l.2l(1p)}c(2P.F!=v&&15.F!=v){1p=p.A.2S(15.F,2P.F);3l(1p,15.H);1l=1l.2l(1p)}c(2P.19!=v&&15.19!=v){1p=p.A.2S(15.19,2P.19);3l(1p,15.H+15[0].bp(15.19));1l=1l.2l(1p)}D(h j=0;j<1l.u;j++){1l[j].5S=3t.U}q 1l}};p.4b.1c.1M=l(7k,7p){f.49.1M(7k,7p);f.B=f.49.B};p.7q=l(){};p.7q.1c={T:l(7u,7s){h 48=f.1I[7u];q p.A.7t(48==v?7s:48)},18:l(7H){q Q.1N(7H)},8n:l(32,7Y){h 3A=[];c(32!=v){D(h i=0;i<32.u;i++){c(7I(32[i])=="4d"){3A=3A.2l(p.A.2S(7Y,32[i]))}}}q 3A.aM(p.A.7W)},8F:l(){h 1V=f.2X;D(h i=0;i<1V.u;i++){c(1V[i]===v){1J}h 2z=1V[i],45=2z.H+2z.u;D(h j=i+1;j<1V.u&&1V[i]!==v;j++){h 25=1V[j];c(25===v){1J}G{c(25.H>45){2y}G{c(25.H==2z.H&&25.u>2z.u){f.2X[i]=v}G{c(25.H>=2z.H&&25.H<45){f.2X[j]=v}}}}}}},7Z:l(2U){h 3h=2U.1O("\\n"),3X=80(f.T("84-2d")),2i=f.T("83-2d-82"),7U=f.T("1M",[]),7M=f.T("3j");2U="";c(2i==I){2i=(3X+3h.u-1).2h().u}G{c(38(2i)==I){2i=0}}D(h i=0;i<3h.u;i++){h 1A=3h[i],66=/^(&2m;|\\s)+/.R(1A),51="aE"+(i%2==0?1:2),7N=p.A.81(3X+i,2i),7T=p.A.Z(7U,(3X+i).2h())!=-1,2H=v;c(66!=v){2H=66[0].2h();1A=1A.22(2H.u)}1A=p.A.2J(1A);c(1A.u==0){1A="&2m;"}c(7T){51+=" aN"}2U+=""+"<7P>"+"<7R>"+(7M?"<3T 1o=\\"aZ\\">"+7N+"":"")+"<3T 1o=\\"60\\">"+(2H!=v?""+2H.E(" ","&2m;")+"":"")+1A+""+""+""+""}q 2U},88:l(69,5T){h 17=0,3p="",3r=p.A.7Q,5R=f.T("2V-U","");l 5X(5Y){h 5Q=5Y?(5Y.5S||5R):5R;q 5Q?5Q+" ":""};D(h i=0;i<5T.u;i++){h 1v=5T[i],3y;c(1v===v||1v.u===0){1J}3y=5X(1v);3p+=3r(69.22(17,1v.H-17),3y+"7K")+3r(1v.23,3y+1v.1a);17=1v.H+1v.u}3p+=3r(69.22(17),5X()+"7K");q 3p},1M:l(C,7V){h cg=p.M,1q=p.1q,B,ca,3e,cd="cm";f.1I={};f.B=v;f.1n=v;f.C=v;f.1e=v;f.6a={};f.1h=p.A.6d("ch");1q.6g[f.1h]=f;c(C===v){C=""}f.1I=p.A.6c(p.6b,7V||{});c(f.T("7X")==I){f.1I.1y=f.1I.3j=N}f.B=B=f.18("3c");f.1n=f.18("3c");f.1n.L="1n";L="6e";B.1h=f.1h;c(f.T("67")){L+=" 5O"}c(f.T("3j")==N){L+=" c5"}c(f.T("5h-1n")==N){f.1n.L+=" bC-5h"}L+=" "+f.T("1o-U");L+=" "+f.T("2V-U");B.L=L;f.5f=C;f.C=p.A.7A(C).E(/\\r/g," ");3e=f.T("1H-2L");f.C=f.T("8z-8H")==I?p.A.8D(f.C,3e):p.A.8c(f.C,3e);f.C=p.A.2I(f.C);c(f.T("1y")){f.1e=f.18("3c");f.1e.L="1e";f.1e.2u(p.1y.18(f));B.2u(f.1e);h 1e=f.1e;l 53(){1e.L=1e.L.E("54","")};B.c1=l(){53();1e.L+=" 54"};B.c2=l(){53()}}B.2u(f.1n);f.2X=f.8n(f.5c,f.C);f.8F();C=f.88(f.C,f.2X);C=f.7Z(p.A.2J(C));c(f.T("8B-8o")){C=p.A.8m(C)}f.1n.27=C},9i:l(z){z=z.E(/^\\s+|\\s+$/g,"").E(/\\s+/g,"|");q"\\\\b(?:"+z+")\\\\b"},9l:l(2K){f.3N={F:{3K:2K.F,1a:"1m"},19:{3K:2K.19,1a:"1m"},C:W V("(?"+2K.F.1j+")"+"(?.*?)"+"(?<19>"+2K.19.1j+")","99")}}};q p}()}c(!1k.V){(l(){h 2A={R:10.1c.R,8w:5I.1c.8w,E:5I.1c.E,1O:5I.1c.1O},1D={13:/(?:[^\\\\([#\\s.]+|\\\\(?!k<[\\w$]+>|[7z]{[^}]+})[\\S\\s]?|\\((?=\\?(?!#|<[\\w$]+>)))+|(\\()(?:\\?(?:(#)[^)]*\\)|<([$\\w]+)>))?|\\\\(?:k<([\\w$]+)>|[7z]{([^}]+)})|(\\[\\^?)|([\\S\\s])/g,98:/(?:[^$]+|\\$(?![1-9$&`\']|{[$\\w]+}))+|\\$(?:([1-9]\\d*|[$&`\'])|{([$\\w]+)})/g,3d:/^(?:\\s+|#.*)+/,5B:/^(?:[?*+]|{\\d+(?:,\\d*)?})/,7J:/&&\\[\\^?/g,7O:/]/g},7G=l(5C,5v,5t){D(h i=5t||0;i<5C.u;i++){c(5C[i]===5v){q i}}q-1},8I=/()??/.R("")[1]!==3a,3b={};V=l(1d,1S){c(1d 5U 10){c(1S!==3a){3q 7n("4g\'t 4I 9a 8A 95 7r 10 5t 94")}q 1d.3z()}h 1S=1S||"",7S=1S.Z("s")>-1,7L=1S.Z("x")>-1,5z=N,3R=[],14=[],13=1D.13,J,cc,3V,37,3u;13.O=0;2r(J=2A.R.2e(13,1d)){c(J[2]){c(!1D.5B.1R(1d.1b(13.O))){14.K("(?:)")}}G{c(J[1]){3R.K(J[3]||v);c(J[3]){5z=I}14.K("(")}G{c(J[4]){37=7G(3R,J[4]);14.K(37>-1?"\\\\"+(37+1)+(38(1d.5w(13.O))?"":"(?:)"):J[0])}G{c(J[5]){14.K(3b.7o?3b.7o.7l(J[5],J[0].5w(1)==="P"):J[0])}G{c(J[6]){c(1d.5w(13.O)==="]"){14.K(J[6]==="["?"(?!)":"[\\\\S\\\\s]");13.O++}G{cc=V.8d("&&"+1d.1b(J.H),1D.7J,1D.7O,"",{7D:"\\\\"})[0];14.K(J[6]+cc+"]");13.O+=cc.u+1}}G{c(J[7]){c(7S&&J[7]==="."){14.K("[\\\\S\\\\s]")}G{c(7L&&1D.3d.1R(J[7])){3V=2A.R.2e(1D.3d,1d.1b(13.O-1))[0].u;c(!1D.5B.1R(1d.1b(13.O-1+3V))){14.K("(?:)")}13.O+=3V-1}G{14.K(J[7])}}}G{14.K(J[0])}}}}}}}3u=10(14.5A(""),2A.E.2e(1S,/[9Y]+/g,""));3u.1B={1j:1d,2g:5z?3R:v};q 3u};V.9s=l(U,o){3b[U]=o};10.1c.R=l(z){h 1f=2A.R.2e(f,z),U,i,5y;c(1f){c(8I&&1f.u>1){5y=W 10("^"+f.1j+"$(?!\\\\s)",f.5J());2A.E.2e(1f[0],5y,l(){D(i=1;i<8j.u-2;i++){c(8j[i]===3a){1f[i]=3a}}})}c(f.1B&&f.1B.2g){D(i=1;i<1f.u;i++){U=f.1B.2g[i-1];c(U){1f[U]=1f[i]}}}c(f.3s&&f.O>(1f.H+1f[0].u)){f.O--}}q 1f}})()}10.1c.5J=l(){q(f.3s?"g":"")+(f.aw?"i":"")+(f.8E?"m":"")+(f.3d?"x":"")+(f.a0?"y":"")};10.1c.3z=l(7C){h 5E=W V(f.1j,(7C||"")+f.5J());c(f.1B){5E.1B={1j:f.1B.1j,2g:f.1B.2g?f.1B.2g.1b(0):v}}q 5E};10.1c.2e=l(93,z){q f.R(z)};10.1c.9b=l(9p,8x){q f.R(8x[0])};V.57=l(55,5d){h 5P="/"+55+"/"+(5d||"");q V.57[5P]||(V.57[5P]=W V(55,5d))};V.41=l(z){q z.E(/[-[\\]{}()*+?.\\\\^$|,#\\s]/g,"\\\\$&")};V.8d=l(z,F,11,1i,2N){h 2N=2N||{},2M=2N.7D,12=2N.cb,1i=1i||"",5F=1i.Z("g")>-1,6Y=1i.Z("i")>-1,7m=1i.Z("m")>-1,5q=1i.Z("y")>-1,1i=1i.E(/y/g,""),F=F 5U 10?(F.3s?F:F.3z("g")):W V(F,"g"+1i),11=11 5U 10?(11.3s?11:11.3z("g")):W V(11,"g"+1i),1K=[],2x=0,1s=0,1r=0,1w=0,2c,2b,1z,1C,3B,4f;c(2M){c(2M.u>1){3q aR("4g\'t 4I aB aF 7r 41 85")}c(7m){3q 7n("4g\'t 4I 41 85 8A bv bj 8E ba")}3B=V.41(2M);4f=W 10("^(?:"+3B+"[\\\\S\\\\s]|(?:(?!"+F.1j+"|"+11.1j+")[^"+3B+"])+)+",6Y?"i":"")}2r(I){F.O=11.O=1r+(2M?(4f.R(z.1b(1r))||[""])[0].u:0);1z=F.R(z);1C=11.R(z);c(1z&&1C){c(1z.H<=1C.H){1C=v}G{1z=v}}c(1z||1C){1s=(1z||1C).H;1r=(1z?F:11).O}G{c(!2x){2y}}c(5q&&!2x&&1s>1w){2y}c(1z){c(!2x++){2c=1s;2b=1r}}G{c(1C&&2x){c(!--2x){c(12){c(12[0]&&2c>1w){1K.K([12[0],z.1b(1w,2c),1w,2c])}c(12[1]){1K.K([12[1],z.1b(2c,2b),2c,2b])}c(12[2]){1K.K([12[2],z.1b(2b,1s),2b,1s])}c(12[3]){1K.K([12[3],z.1b(1s,1r),1s,1r])}}G{1K.K(z.1b(2b,1s))}1w=1r;c(!5F){2y}}}G{F.O=11.O=0;3q bE("bZ 8L av 9t as")}}c(1s===1r){1r++}}c(5F&&!5q&&12&&12[0]&&z.u>1w){1K.K([12[0],z.1b(1w),1w,z.u])}F.O=11.O=0;q 1K};', - 62, - 769, - '||||||||||||if|||this||var||||function||||sh|return||||length|null||||str|utils|div|code|for|replace|left|else|index|true|_121|push|className|config|false|lastIndex||document|exec||getParam|name|XRegExp|new|lt|gt|indexOf|RegExp|_139|vN|part|_11f|_d3||pos|create|right|css|slice|prototype|_119|bar|_129|strings|id|_13a|source|window|_d6|script|lines|class|_da|vars|_145|_144|style|_b5|_103|_146|alert|toolbar|_149|_f4|_x|_14a|lib|obj|html|doc|tab|params|continue|_142|_c3|highlight|createElement|split|_c5|href|test|_11a|_c2|_8|_e7|width|text|_5a|_5b|min|_91|substr|value||_ec|in|innerHTML|_4f|_3c|_98|_148|_147|line|call|_6e|captureNames|toString|_f0|_75|_bc|concat|nbsp|brushes|http|_cd|attributes|while|height|wnd|appendChild|_be|_5f|_143|break|_e9|real|execute|_66|_c4|_40|_88|SyntaxHighlighter|_f9|unindent|trim|_10f|size|_13c|_13b|case|_d9|_28|_55|getMatches|_c1|_ed|brush|_61|matches|_a2|body|m2|m1|_e3|_81|_7a|_5|_80|_124|isNaN|title|undefined|_118|DIV|extended|_10b|_2|_62|_ee|_7d|gutter|_25|offsetMatches|_4e|_8e|print|_fd|throw|_fe|global|_cc|_125|gm|Math|com|_104|addFlags|_e5|_14b|_3|printFrame|fixInputString|_76|_af|font|write|_7c|regex|_b6|substring|htmlScript|_32|_b4|url|_11e|_c6|td|_49|len|_60|_ef|_22|_a7|_7b|escape|_6a|color|_blank|_ea|_4d|_4c|_e1|xmlBrush|_47|HtmlScript|close|object|link|esc|can|_5d|_b0|type|_ad|_ae|_b3|_b2|_73|_b8|_ba|_b9|_a6|span|removeChild|gi|_89|eachLine|_7e|_9d|_82|_a3|_9e|getElementsByTagName|_6b|_cb|top|_53|supply|_ce|func|_50|popup|_d0|_54|findBrush|useScriptTags|_bf|_6c|values|discoveredBrushes|win|Match|_c8|focus|_d7||_f6|_29|hide|show|_133|_2b|cache|pre|_19|_1a|viewSource|regexList|_134|_2a|originalCode|highlighterId|wrap|_27|copyToClipboard|toolbarItemHeight|_2c|_2e|_2d|toolbarItemWidth|expandSource|_141|_7|_4|from|_e|item|charAt|www|r2|_11d|join|quantifier|_113|_b|_12e|_13e|_17|_18|String|getNativeFlags|_9|_f|_d|_10|collapsed|key|_101|_ff|brushName|_fb|instanceof|_30|swf|getBrushNameCss|_100|contentWindow|content|_38|_8c|_35|_37|_24|_f5|collapse|_2f|_fa|toolbarCommands|defaults|merge|guid|syntaxhighlighter|clipboardSwf|highlighters|_6|rel|DTD|to|createButton|_a|_84|500px|measureSpace|clipboard|none|scrollbars|decoration|org|_83|0px|margin|head|align|center|userAgent|_3f|copyStyles|0099FF|help|alexgorbatchev|xhtml1|_3e|w3|_85|_48|noBrush|_5e|version|stylesheet|_65|_6d|switch|screen|flash|event|_52|attachEvent|_13f|shockwave|toLowerCase|_1e|_36|px|clipboardData|commandName|copyToClipboardConfirmation|message|aboutDialog|_78|executeCommand|_14|_16|items|_13|_12|_4b|_15|_79|navigator|_dd|get|_140|TypeError|unicode|_de|Highlighter|one|_e0|toBoolean|_df|_d8|_d5|_c7|addEvent|pP|trimFirstAndLastLines|_c9|_12d|escapeChar|process|_d1|_112|_e2|typeof|classLeft|plain|_11c|_f2|_f7|classRight|table|decorate|tr|_11b|_f8|_f1|_106|matchesSortCallback|light|_e4|createDisplayLines|parseInt|padNumber|numbers|pad|first|character|brushNotHtmlScript|_a4|processMatches|tagName|getSyntaxHighlighterScriptTags|parseParams|processTabs|matchRecursive|_b7|toArray|_9a|_a8|_a1|arguments|_a9|regexLib|processUrls|findMatches|links|defaultAdd|_bd|_93|bloggerMode|stripCData|insertSpaces|parentNode|match|args|_90|smart|when|auto|debug|processSmartTabs|multiline|removeNestedMatches|stripBrs|tabs|_117|2004|2009|data|_1c|keep|Alex|donate|2930402|development|active|_1b|highlighter|syntax|JavaScript|Copyright|multiLineDoubleQuotedString|hosted_button_id|string|scriptScriptTags|aspScriptTags|_12f|another|constructing|onclick|catch|replaceVar|sgi|flags|apply|phpScriptTags|singleLineCComments|singleLinePerlComments|multiLineCComments|spaceWidth|Gorbatchev|getKeywords|doubleQuotedString|xmlComments|forHtmlScript|multiLineSingleQuotedString|try|singleQuotedString|_131|bottom|xmlns|addPlugin|unbalanced|dtd|transitional|EN|TR|1999|xhtml|charset|utf|About|Type|Content|meta|equiv|Transitional|XHTML|your|now|Can|is|The|view|copy|find|Brush|PUBLIC|W3C|DOCTYPE|option|wasn|configured|sx|family|sticky|If|you|target|2010|382|June|like|please|webscr|cmd|_s|bin|cgi|https|paypal|4em|75em|serif|background|fff|sans|Helvetica|Geneva|Arial|000|1em|large|delimiters|xx|3em|contains|ignoreCase|xclick|always|about|_42|more|shCore|printing|alt|than|_43|max|round|250|500|_44|sort|highlighted|absolute|error|spaces|SyntaxError|ok|amp|setData|_1f|_39|cssText|position|number|IFRAME|_3a|_3b|random|1000000|_a5|getElementById|block|CDATA|htmlscript|flag|opera|1000|offsetWidth|_8a|_99|getPropertyValue|getComputedStyle|Array|the|textarea|Xml|load|open|_cf|lastIndexOf|_d4||all|on|70em|using|30em|aliases|addEventListener|replaceChild|command|printSource|no|menu|Error|flashVars|wmode|transparent|msie|classid|11cf|96b8|ae6d|d27cdb6e|clsid|allowScriptAccess|application|location|resizable|400|750|_20|_21|menubar|_26|subject|_clipboard|onmouseover|onmouseout|param|444553540000|nogutter|embed|macromedia|movie|swflash|_10a|valueNames||_10c|pub|src|conf|highlighter_|cab|download|cabs|codebase|important|_34|_33' - .split('|'), 0, {})) diff --git a/app/src/main/assets/shThemeDefault.css b/app/src/main/assets/shThemeDefault.css deleted file mode 100644 index 5430b05e6..000000000 --- a/app/src/main/assets/shThemeDefault.css +++ /dev/null @@ -1,142 +0,0 @@ -.syntaxhighlighter -{ - background-color: #fff !important; -} - -/* Highlighed line number */ -.syntaxhighlighter .line.highlighted .number -{ - color: black !important; -} - -/* Highlighed line */ -.syntaxhighlighter .line.highlighted.alt1, -.syntaxhighlighter .line.highlighted.alt2 -{ - background-color: #e0e0e0 !important; -} - -/* Gutter line numbers */ -.syntaxhighlighter .line .number -{ - color: #afafaf !important; -} - -/* Add border to the lines */ -.syntaxhighlighter .line .content -{ - border-left: 3px solid #6CE26C !important; - color: #000 !important; -} - -.syntaxhighlighter.printing .line .content -{ - border: 0 !important; -} - -/* First line */ -.syntaxhighlighter .line.alt1 -{ - background-color: #fff !important; - word-wrap:break-word -} - -/* Second line */ -.syntaxhighlighter .line.alt2 -{ - background-color: #F8F8F8 !important; -} - -.syntaxhighlighter .toolbar -{ - background-color: #F8F8F8 !important; - border: #E7E5DC solid 1px !important; - display:none; -} - -.syntaxhighlighter .toolbar a -{ - color: #a0a0a0 !important; - display:none; -} - -.syntaxhighlighter .toolbar a:hover -{ - color: red !important; - display:none; -} - -/************************************ - * Actual syntax highlighter colors. - ************************************/ -.syntaxhighlighter .plain, -.syntaxhighlighter .plain a -{ - color: #000 !important; -} - -.syntaxhighlighter .comments, -.syntaxhighlighter .comments a -{ - color: #008200 !important; -} - -.syntaxhighlighter .string, -.syntaxhighlighter .string a -{ - color: blue !important; -} - -.syntaxhighlighter .keyword -{ - color: #069 !important; - font-weight: bold !important; -} - -.syntaxhighlighter .preprocessor -{ - color: gray !important; -} - -.syntaxhighlighter .variable -{ - color: #a70 !important; -} - -.syntaxhighlighter .value -{ - color: #090 !important; -} - -.syntaxhighlighter .functions -{ - color: #ff1493 !important; -} - -.syntaxhighlighter .constants -{ - color: #0066CC !important; -} - -.syntaxhighlighter .script -{ - background-color: yellow !important; -} - -.syntaxhighlighter .color1, -.syntaxhighlighter .color1 a -{ - color: #808080 !important; -} - -.syntaxhighlighter .color2, -.syntaxhighlighter .color2 a -{ - color: #ff1493 !important; -} - -.syntaxhighlighter .color3, -.syntaxhighlighter .color3 a -{ - color: red !important; -} diff --git a/app/src/main/java/com/dtr/zxing/activity/CaptureActivity.java b/app/src/main/java/com/dtr/zxing/activity/CaptureActivity.java deleted file mode 100644 index abc909303..000000000 --- a/app/src/main/java/com/dtr/zxing/activity/CaptureActivity.java +++ /dev/null @@ -1,572 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * 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. - */ -package com.dtr.zxing.activity; - -import android.annotation.SuppressLint; -import android.app.AlertDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.graphics.Rect; -import android.os.Bundle; -import android.os.Handler; -import android.text.ClipboardManager; -import android.util.Log; -import android.view.SurfaceHolder; -import android.view.SurfaceView; -import android.view.View; -import android.view.Window; -import android.view.WindowManager; -import android.view.animation.Animation; -import android.view.animation.TranslateAnimation; -import android.widget.ImageView; -import android.widget.RelativeLayout; -import cz.msebera.android.httpclient.Header; - -import com.dtr.zxing.camera.CameraManager; -import com.dtr.zxing.decode.DecodeThread; -import com.dtr.zxing.utils.BeepManager; -import com.dtr.zxing.utils.CaptureActivityHandler; -import com.dtr.zxing.utils.InactivityTimer; -import com.google.zxing.Result; -import com.loopj.android.http.AsyncHttpResponseHandler; - -import net.oschina.app.AppContext; -import net.oschina.app.AppException; -import net.oschina.app.R; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseActivity; -import net.oschina.app.bean.BarCode; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.bean.SingInResult; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; - - -import java.io.IOException; -import java.lang.reflect.Field; - -/** - * This activity opens the camera and does the actual scanning on a background - * thread. It draws a viewfinder to help the user place the barcode correctly, - * shows feedback as the image processing is happening, and then overlays the - * results when a scan is successful. - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Sean Owen - */ -public final class CaptureActivity extends BaseActivity implements - SurfaceHolder.Callback { - - private static final String TAG = CaptureActivity.class.getSimpleName(); - - private CameraManager cameraManager; - private CaptureActivityHandler handler; - private InactivityTimer inactivityTimer; - private BeepManager beepManager; - - private SurfaceView scanPreview = null; - private RelativeLayout scanContainer; - private RelativeLayout scanCropView; - private ImageView scanLine; - private ImageView mFlash; - - private Rect mCropRect = null; - - public Handler getHandler() { - return handler; - } - - public CameraManager getCameraManager() { - return cameraManager; - } - - private boolean isHasSurface = false; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - - Window window = getWindow(); - window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - setContentView(R.layout.activity_qr_scan); - - scanPreview = (SurfaceView) findViewById(R.id.capture_preview); - scanContainer = (RelativeLayout) findViewById(R.id.capture_container); - scanCropView = (RelativeLayout) findViewById(R.id.capture_crop_view); - scanLine = (ImageView) findViewById(R.id.capture_scan_line); - mFlash = (ImageView) findViewById(R.id.capture_flash); - mFlash.setOnClickListener(this); - - inactivityTimer = new InactivityTimer(this); - beepManager = new BeepManager(this); - - TranslateAnimation animation = new TranslateAnimation( - Animation.RELATIVE_TO_PARENT, 0.0f, - Animation.RELATIVE_TO_PARENT, 0.0f, - Animation.RELATIVE_TO_PARENT, 0.0f, - Animation.RELATIVE_TO_PARENT, 0.9f); - animation.setDuration(4500); - animation.setRepeatCount(-1); - animation.setRepeatMode(Animation.RESTART); - scanLine.startAnimation(animation); - } - - @SuppressLint("NewApi") - @Override - protected boolean hasActionBar() { - - if (android.os.Build.VERSION.SDK_INT >= 11) { - getSupportActionBar().hide(); - return true; - } else { - return false; - } - - } - - @Override - protected void onResume() { - super.onResume(); - - // CameraManager must be initialized here, not in onCreate(). This is - // necessary because we don't - // want to open the camera driver and measure the screen size if we're - // going to show the help on - // first launch. That led to bugs where the scanning rectangle was the - // wrong size and partially - // off screen. - cameraManager = new CameraManager(getApplication()); - - handler = null; - - if (isHasSurface) { - // The activity was paused but not stopped, so the surface still - // exists. Therefore - // surfaceCreated() won't be called, so init the camera here. - initCamera(scanPreview.getHolder()); - } else { - // Install the callback and wait for surfaceCreated() to init the - // camera. - scanPreview.getHolder().addCallback(this); - } - - inactivityTimer.onResume(); - } - - @Override - protected void onPause() { - if (handler != null) { - handler.quitSynchronously(); - handler = null; - } - inactivityTimer.onPause(); - beepManager.close(); - cameraManager.closeDriver(); - if (!isHasSurface) { - scanPreview.getHolder().removeCallback(this); - } - super.onPause(); - } - - @Override - protected void onDestroy() { - inactivityTimer.shutdown(); - super.onDestroy(); - } - - @Override - public void surfaceCreated(SurfaceHolder holder) { - if (holder == null) { - Log.e(TAG, - "*** WARNING *** surfaceCreated() gave us a null surface!"); - } - if (!isHasSurface) { - isHasSurface = true; - initCamera(holder); - } - } - - @Override - public void surfaceDestroyed(SurfaceHolder holder) { - isHasSurface = false; - } - - @Override - public void surfaceChanged(SurfaceHolder holder, int format, int width, - int height) { - - } - - /** - * A valid barcode has been found, so give an indication of success and show - * the results. - * - * @param rawResult The contents of the barcode. - * @param bundle The extras - */ - public void handleDecode(final Result rawResult, Bundle bundle) { - inactivityTimer.onActivity(); - beepManager.playBeepSoundAndVibrate(); - - // 通过这种方式可以获取到扫描的图片 -// bundle.putInt("width", mCropRect.width()); -// bundle.putInt("height", mCropRect.height()); -// bundle.putString("result", rawResult.getText()); -// -// startActivity(new Intent(CaptureActivity.this, ResultActivity.class) -// .putExtras(bundle)); - - handler.postDelayed(new Runnable() { - - @Override - public void run() { - handleText(rawResult.getText()); - } - }, 800); - } - - private void handleText(String text) { - - if (StringUtils.isUrl(text)) { - showUrlOption(text); - } else { - handleOtherText(text); - } - } - - private void showUrlOption(final String url) { - if (url.contains("scan_login")) { - showConfirmLogin(url); - return; - } - if (url.contains("oschina.net")) { - UIHelper.showUrlRedirect(CaptureActivity.this, url); - finish(); - return; - } - DialogHelp.getConfirmDialog(this, "可能存在风险,是否打开链接?
" + url, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - UIHelper.showUrlRedirect(CaptureActivity.this, url); - finish(); - } - }, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - finish(); - } - }).show(); - } - - private void showConfirmLogin(final String url) { - if (!AppContext.getInstance().isLogin()) { - showLogin(); - return; - } - DialogHelp.getConfirmDialog(this, "扫描成功,是否进行网页登陆", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - handleScanLogin(url); - finish(); - } - }, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - finish(); - } - }).show(); - } - - private void handleScanLogin(final String url) { - OSChinaApi.scanQrCodeLogin(url, new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - ResultBean result = XmlUtils.toBean(ResultBean.class, arg2); - if (result != null && result.getResult() != null - && result.getResult().OK()) { - AppContext.showToast(result.getResult().getErrorMessage()); - finish(); - } else { - handler.sendEmptyMessage(R.id.restart_preview); - AppContext.showToast(result != null - && result.getResult() != null ? result.getResult() - .getErrorMessage() : "登陆失败"); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - handler.sendEmptyMessage(R.id.restart_preview); - if (arg2 != null) { - AppContext.showToast(new String(arg2)); - } else { - AppContext.showToast("网页登陆失败"); - } - } - - @Override - public void onStart() { - super.onStart(); - showWaitDialog("已扫描,正在登陆..."); - } - - @Override - public void onFinish() { - super.onFinish(); - hideWaitDialog(); - } - }); - } - - private void handleOtherText(final String text) { - // 判断是否符合基本的json格式 - if (!text.matches("^\\{.*")) { - showCopyTextOption(text); - } else { - try { - BarCode barcode = BarCode.parse(text); - int type = barcode.getType(); - switch (type) { - case BarCode.SIGN_IN:// 签到 - handleSignIn(barcode); - break; - default: - break; - } - } catch (AppException e) { - showCopyTextOption(text); - } - } - } - - private void handleSignIn(BarCode barCode) { - if (barCode.isRequireLogin() && !AppContext.getInstance().isLogin()) { - showLogin(); - return; - } - showWaitDialog("正在签到..."); - AsyncHttpResponseHandler handler = new AsyncHttpResponseHandler() { - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - SingInResult res = SingInResult.parse(new String(arg2)); - if (res.isOk()) { - DialogHelp.getMessageDialog(CaptureActivity.this, res.getMessage()).show(); - } else { - DialogHelp.getMessageDialog(CaptureActivity.this, res.getErrorMes()).show(); - } - } catch (AppException e) { - e.printStackTrace(); - onFailure(arg0, arg1, arg2, e); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - hideWaitDialog(); - DialogHelp.getMessageDialog(CaptureActivity.this, arg3.getMessage()).show(); - } - - @Override - public void onFinish() { - super.onFinish(); - hideWaitDialog(); - } - }; - OSChinaApi.singnIn(barCode.getUrl(), handler); - } - - private void showLogin() { - DialogHelp.getConfirmDialog(this, "请先登录,再进行", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - UIHelper.showLoginActivity(CaptureActivity.this); - } - }).show(); - } - - private void showCopyTextOption(final String text) { - DialogHelp.getConfirmDialog(this, text, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - ClipboardManager cbm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); - cbm.setText(text); - AppContext.showToast("复制成功"); - finish(); - } - }, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - finish(); - } - }).show(); - } - - private void initCamera(SurfaceHolder surfaceHolder) { - if (surfaceHolder == null) { - throw new IllegalStateException("No SurfaceHolder provided"); - } - if (cameraManager.isOpen()) { - Log.w(TAG, - "initCamera() while already open -- late SurfaceView callback?"); - return; - } - try { - cameraManager.openDriver(surfaceHolder); - // Creating the handler starts the preview, which can also throw a - // RuntimeException. - if (handler == null) { - handler = new CaptureActivityHandler(this, cameraManager, - DecodeThread.ALL_MODE); - } - - initCrop(); - } catch (IOException ioe) { - Log.w(TAG, ioe); - displayFrameworkBugMessageAndExit(); - } catch (RuntimeException e) { - Log.w(TAG, "Unexpected error initializing camera", e); - displayFrameworkBugMessageAndExit(); - } - } - - private void displayFrameworkBugMessageAndExit() { - // camera error - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(getString(R.string.app_name)); - builder.setMessage("相机打开出错,请稍后重试"); - builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - finish(); - } - - }); - builder.setOnCancelListener(new DialogInterface.OnCancelListener() { - - @Override - public void onCancel(DialogInterface dialog) { - finish(); - } - }); - builder.show(); - } - - public void restartPreviewAfterDelay(long delayMS) { - if (handler != null) { - handler.sendEmptyMessageDelayed(R.id.restart_preview, delayMS); - } - } - - public Rect getCropRect() { - return mCropRect; - } - - /** - * 初始化截取的矩形区域 - */ - private void initCrop() { - int cameraWidth = cameraManager.getCameraResolution().y; - int cameraHeight = cameraManager.getCameraResolution().x; - - /** 获取布局中扫描框的位置信息 */ - int[] location = new int[2]; - scanCropView.getLocationInWindow(location); - - int cropLeft = location[0]; - int cropTop = location[1] - getStatusBarHeight(); - - int cropWidth = scanCropView.getWidth(); - int cropHeight = scanCropView.getHeight(); - - /** 获取布局容器的宽高 */ - int containerWidth = scanContainer.getWidth(); - int containerHeight = scanContainer.getHeight(); - - /** 计算最终截取的矩形的左上角顶点x坐标 */ - int x = cropLeft * cameraWidth / containerWidth; - /** 计算最终截取的矩形的左上角顶点y坐标 */ - int y = cropTop * cameraHeight / containerHeight; - - /** 计算最终截取的矩形的宽度 */ - int width = cropWidth * cameraWidth / containerWidth; - /** 计算最终截取的矩形的高度 */ - int height = cropHeight * cameraHeight / containerHeight; - - /** 生成最终的截取的矩形 */ - mCropRect = new Rect(x, y, width + x, height + y); - } - - private int getStatusBarHeight() { - try { - Class c = Class.forName("com.android.internal.R$dimen"); - Object obj = c.newInstance(); - Field field = c.getField("status_bar_height"); - int x = Integer.parseInt(field.get(obj).toString()); - return getResources().getDimensionPixelSize(x); - } catch (Exception e) { - e.printStackTrace(); - } - return 0; - } - - @Override - public void onClick(View v) { - // TODO Auto-generated method stub - switch (v.getId()) { - case R.id.capture_flash: - light(); - break; - - default: - break; - } - } - - private boolean flag; - - protected void light() { - if (flag == true) { - flag = false; - // 开闪光灯 - cameraManager.openLight(); - mFlash.setBackgroundResource(R.drawable.flash_open); - } else { - flag = true; - // 关闪光灯 - cameraManager.offLight(); - mFlash.setBackgroundResource(R.drawable.flash_default); - } - } - - @Override - public void initView() { - // TODO Auto-generated method stub - - } - - @Override - public void initData() { - // TODO Auto-generated method stub - - } -} \ No newline at end of file diff --git a/app/src/main/java/com/dtr/zxing/camera/AutoFocusManager.java b/app/src/main/java/com/dtr/zxing/camera/AutoFocusManager.java deleted file mode 100644 index 0def96bdb..000000000 --- a/app/src/main/java/com/dtr/zxing/camera/AutoFocusManager.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (C) 2012 ZXing authors - * - * 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. - */ - -package com.dtr.zxing.camera; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.hardware.Camera; -import android.os.AsyncTask; -import android.os.Build; -import android.util.Log; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.concurrent.RejectedExecutionException; - -public class AutoFocusManager implements Camera.AutoFocusCallback { - - private static final String TAG = AutoFocusManager.class.getSimpleName(); - - private static final long AUTO_FOCUS_INTERVAL_MS = 2000L; - private static final Collection FOCUS_MODES_CALLING_AF; - - static { - FOCUS_MODES_CALLING_AF = new ArrayList(2); - FOCUS_MODES_CALLING_AF.add(Camera.Parameters.FOCUS_MODE_AUTO); - FOCUS_MODES_CALLING_AF.add(Camera.Parameters.FOCUS_MODE_MACRO); - } - - private boolean stopped; - private boolean focusing; - private final boolean useAutoFocus; - private final Camera camera; - private AsyncTask outstandingTask; - - public AutoFocusManager(Context context, Camera camera) { - this.camera = camera; - String currentFocusMode = camera.getParameters().getFocusMode(); - useAutoFocus = FOCUS_MODES_CALLING_AF.contains(currentFocusMode); - Log.i(TAG, "Current focus mode '" + currentFocusMode + "'; use auto focus? " + useAutoFocus); - start(); - } - - @Override - public synchronized void onAutoFocus(boolean success, Camera theCamera) { - focusing = false; - autoFocusAgainLater(); - } - - @SuppressLint("NewApi") - private synchronized void autoFocusAgainLater() { - if (!stopped && outstandingTask == null) { - AutoFocusTask newTask = new AutoFocusTask(); - try { - if (Build.VERSION.SDK_INT >= 11) { - newTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } else { - newTask.execute(); - } - outstandingTask = newTask; - } catch (RejectedExecutionException ree) { - Log.w(TAG, "Could not request auto focus", ree); - } - } - } - - public synchronized void start() { - if (useAutoFocus) { - outstandingTask = null; - if (!stopped && !focusing) { - try { - camera.autoFocus(this); - focusing = true; - } catch (RuntimeException re) { - // Have heard RuntimeException reported in Android 4.0.x+; - // continue? - Log.w(TAG, "Unexpected exception while focusing", re); - // Try again later to keep cycle going - autoFocusAgainLater(); - } - } - } - } - - private synchronized void cancelOutstandingTask() { - if (outstandingTask != null) { - if (outstandingTask.getStatus() != AsyncTask.Status.FINISHED) { - outstandingTask.cancel(true); - } - outstandingTask = null; - } - } - - public synchronized void stop() { - stopped = true; - if (useAutoFocus) { - cancelOutstandingTask(); - // Doesn't hurt to call this even if not focusing - try { - camera.cancelAutoFocus(); - } catch (RuntimeException re) { - // Have heard RuntimeException reported in Android 4.0.x+; - // continue? - Log.w(TAG, "Unexpected exception while cancelling focusing", re); - } - } - } - - private final class AutoFocusTask extends AsyncTask { - @Override - protected Object doInBackground(Object... voids) { - try { - Thread.sleep(AUTO_FOCUS_INTERVAL_MS); - } catch (InterruptedException e) { - // continue - } - start(); - return null; - } - } - -} diff --git a/app/src/main/java/com/dtr/zxing/camera/CameraConfigurationManager.java b/app/src/main/java/com/dtr/zxing/camera/CameraConfigurationManager.java deleted file mode 100644 index 787f86ffb..000000000 --- a/app/src/main/java/com/dtr/zxing/camera/CameraConfigurationManager.java +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * 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. - */ -package com.dtr.zxing.camera; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.graphics.Point; -import android.hardware.Camera; -import android.util.Log; -import android.view.Display; -import android.view.WindowManager; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; - -/** - * - * 邮箱: 1076559197@qq.com | tauchen1990@gmail.com - * - * 作者: 陈涛 - * - * 日期: 2014年8月20日 - * - * 描述: 该类主要负责设置相机的参数信息,获取最佳的预览界面 - * - */ -public final class CameraConfigurationManager { - - private static final String TAG = "CameraConfiguration"; - - private static final int MIN_PREVIEW_PIXELS = 480 * 320; - private static final double MAX_ASPECT_DISTORTION = 0.15; - - private final Context context; - - // 屏幕分辨率 - private Point screenResolution; - // 相机分辨率 - private Point cameraResolution; - - public CameraConfigurationManager(Context context) { - this.context = context; - } - - public void initFromCameraParameters(Camera camera) { - Camera.Parameters parameters = camera.getParameters(); - WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); - Display display = manager.getDefaultDisplay(); - Point theScreenResolution = new Point(); - theScreenResolution = getDisplaySize(display); - - screenResolution = theScreenResolution; - Log.i(TAG, "Screen resolution: " + screenResolution); - - /** 因为换成了竖屏显示,所以不替换屏幕宽高得出的预览图是变形的 */ - Point screenResolutionForCamera = new Point(); - screenResolutionForCamera.x = screenResolution.x; - screenResolutionForCamera.y = screenResolution.y; - - if (screenResolution.x < screenResolution.y) { - screenResolutionForCamera.x = screenResolution.y; - screenResolutionForCamera.y = screenResolution.x; - } - - cameraResolution = findBestPreviewSizeValue(parameters, screenResolutionForCamera); - Log.i(TAG, "Camera resolution x: " + cameraResolution.x); - Log.i(TAG, "Camera resolution y: " + cameraResolution.y); - } - - @SuppressWarnings("deprecation") - @SuppressLint("NewApi") - private Point getDisplaySize(final Display display) { - final Point point = new Point(); - try { - display.getSize(point); - } catch (NoSuchMethodError ignore) { - point.x = display.getWidth(); - point.y = display.getHeight(); - } - return point; - } - - public void setDesiredCameraParameters(Camera camera, boolean safeMode) { - Camera.Parameters parameters = camera.getParameters(); - - if (parameters == null) { - Log.w(TAG, "Device error: no camera parameters are available. Proceeding without configuration."); - return; - } - - Log.i(TAG, "Initial camera parameters: " + parameters.flatten()); - - if (safeMode) { - Log.w(TAG, "In camera config safe mode -- most settings will not be honored"); - } - - parameters.setPreviewSize(cameraResolution.x, cameraResolution.y); - camera.setParameters(parameters); - - Camera.Parameters afterParameters = camera.getParameters(); - Camera.Size afterSize = afterParameters.getPreviewSize(); - if (afterSize != null && (cameraResolution.x != afterSize.width || cameraResolution.y != afterSize.height)) { - Log.w(TAG, "Camera said it supported preview size " + cameraResolution.x + 'x' + cameraResolution.y + ", but after setting it, preview size is " + afterSize.width + 'x' + afterSize.height); - cameraResolution.x = afterSize.width; - cameraResolution.y = afterSize.height; - } - - /** 设置相机预览为竖屏 */ - camera.setDisplayOrientation(90); - } - - public Point getCameraResolution() { - return cameraResolution; - } - - public Point getScreenResolution() { - return screenResolution; - } - - /** - * 从相机支持的分辨率中计算出最适合的预览界面尺寸 - * - * @param parameters - * @param screenResolution - * @return - */ - private Point findBestPreviewSizeValue(Camera.Parameters parameters, Point screenResolution) { - List rawSupportedSizes = parameters.getSupportedPreviewSizes(); - if (rawSupportedSizes == null) { - Log.w(TAG, "Device returned no supported preview sizes; using default"); - Camera.Size defaultSize = parameters.getPreviewSize(); - return new Point(defaultSize.width, defaultSize.height); - } - - // Sort by size, descending - List supportedPreviewSizes = new ArrayList(rawSupportedSizes); - Collections.sort(supportedPreviewSizes, new Comparator() { - @Override - public int compare(Camera.Size a, Camera.Size b) { - int aPixels = a.height * a.width; - int bPixels = b.height * b.width; - if (bPixels < aPixels) { - return -1; - } - if (bPixels > aPixels) { - return 1; - } - return 0; - } - }); - - if (Log.isLoggable(TAG, Log.INFO)) { - StringBuilder previewSizesString = new StringBuilder(); - for (Camera.Size supportedPreviewSize : supportedPreviewSizes) { - previewSizesString.append(supportedPreviewSize.width).append('x').append(supportedPreviewSize.height).append(' '); - } - Log.i(TAG, "Supported preview sizes: " + previewSizesString); - } - - double screenAspectRatio = (double) screenResolution.x / (double) screenResolution.y; - - // Remove sizes that are unsuitable - Iterator it = supportedPreviewSizes.iterator(); - while (it.hasNext()) { - Camera.Size supportedPreviewSize = it.next(); - int realWidth = supportedPreviewSize.width; - int realHeight = supportedPreviewSize.height; - if (realWidth * realHeight < MIN_PREVIEW_PIXELS) { - it.remove(); - continue; - } - - boolean isCandidatePortrait = realWidth < realHeight; - int maybeFlippedWidth = isCandidatePortrait ? realHeight : realWidth; - int maybeFlippedHeight = isCandidatePortrait ? realWidth : realHeight; - - double aspectRatio = (double) maybeFlippedWidth / (double) maybeFlippedHeight; - double distortion = Math.abs(aspectRatio - screenAspectRatio); - if (distortion > MAX_ASPECT_DISTORTION) { - it.remove(); - continue; - } - - if (maybeFlippedWidth == screenResolution.x && maybeFlippedHeight == screenResolution.y) { - Point exactPoint = new Point(realWidth, realHeight); - Log.i(TAG, "Found preview size exactly matching screen size: " + exactPoint); - return exactPoint; - } - } - - // If no exact match, use largest preview size. This was not a great - // idea on older devices because - // of the additional computation needed. We're likely to get here on - // newer Android 4+ devices, where - // the CPU is much more powerful. - if (!supportedPreviewSizes.isEmpty()) { - Camera.Size largestPreview = supportedPreviewSizes.get(0); - Point largestSize = new Point(largestPreview.width, largestPreview.height); - Log.i(TAG, "Using largest suitable preview size: " + largestSize); - return largestSize; - } - - // If there is nothing at all suitable, return current preview size - Camera.Size defaultPreview = parameters.getPreviewSize(); - Point defaultSize = new Point(defaultPreview.width, defaultPreview.height); - Log.i(TAG, "No suitable preview sizes, using default: " + defaultSize); - - return defaultSize; - } -} diff --git a/app/src/main/java/com/dtr/zxing/camera/CameraManager.java b/app/src/main/java/com/dtr/zxing/camera/CameraManager.java deleted file mode 100644 index f7e4bbfde..000000000 --- a/app/src/main/java/com/dtr/zxing/camera/CameraManager.java +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * 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. - */ - -package com.dtr.zxing.camera; - -import android.content.Context; -import android.graphics.Point; -import android.hardware.Camera; -import android.hardware.Camera.Parameters; -import android.hardware.Camera.Size; -import android.os.Handler; -import android.util.Log; -import android.view.SurfaceHolder; - -import com.dtr.zxing.camera.open.OpenCameraInterface; - -import java.io.IOException; - -/** - * This object wraps the Camera service object and expects to be the only one - * talking to it. The implementation encapsulates the steps needed to take - * preview-sized images, which are used for both preview and decoding. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public class CameraManager { - - private static final String TAG = CameraManager.class.getSimpleName(); - - private final Context context; - private final CameraConfigurationManager configManager; - private Camera camera; - private AutoFocusManager autoFocusManager; - private Parameters parameter; - - private boolean initialized; - private boolean previewing; - private int requestedCameraId = -1; - /** - * Preview frames are delivered here, which we pass on to the registered - * handler. Make sure to clear the handler so it will only receive one - * message. - */ - private final PreviewCallback previewCallback; - - public CameraManager(Context context) { - this.context = context; - this.configManager = new CameraConfigurationManager(context); - previewCallback = new PreviewCallback(configManager); - } - - /** - * Opens the camera driver and initializes the hardware parameters. - * - * @param holder - * The surface object which the camera will draw preview frames - * into. - * @throws java.io.IOException - * Indicates the camera driver failed to open. - */ - public synchronized void openDriver(SurfaceHolder holder) - throws IOException { - Camera theCamera = camera; - if (theCamera == null) { - - if (requestedCameraId >= 0) { - theCamera = OpenCameraInterface.open(requestedCameraId); - } else { - theCamera = OpenCameraInterface.open(); - } - - if (theCamera == null) { - throw new IOException(); - } - camera = theCamera; - } - theCamera.setPreviewDisplay(holder); - - if (!initialized) { - initialized = true; - configManager.initFromCameraParameters(theCamera); - } - - Camera.Parameters parameters = theCamera.getParameters(); - String parametersFlattened = parameters == null ? null : parameters - .flatten(); // Save - // these, - // temporarily - try { - configManager.setDesiredCameraParameters(theCamera, false); - } catch (RuntimeException re) { - // Driver failed - Log.w(TAG, - "Camera rejected parameters. Setting only minimal safe-mode parameters"); - Log.i(TAG, "Resetting to saved camera params: " - + parametersFlattened); - // Reset: - if (parametersFlattened != null) { - parameters = theCamera.getParameters(); - parameters.unflatten(parametersFlattened); - try { - theCamera.setParameters(parameters); - configManager.setDesiredCameraParameters(theCamera, true); - } catch (RuntimeException re2) { - // Well, darn. Give up - Log.w(TAG, - "Camera rejected even safe-mode parameters! No configuration"); - } - } - } - - } - - public synchronized boolean isOpen() { - return camera != null; - } - - /** - * Closes the camera driver if still in use. - */ - public synchronized void closeDriver() { - if (camera != null) { - camera.release(); - camera = null; - // Make sure to clear these each time we close the camera, so that - // any scanning rect - // requested by intent is forgotten. - } - } - - /** - * Asks the camera hardware to begin drawing preview frames to the screen. - */ - public synchronized void startPreview() { - Camera theCamera = camera; - if (theCamera != null && !previewing) { - theCamera.startPreview(); - previewing = true; - autoFocusManager = new AutoFocusManager(context, camera); - } - } - - /** - * Tells the camera to stop drawing preview frames. - */ - public synchronized void stopPreview() { - if (autoFocusManager != null) { - autoFocusManager.stop(); - autoFocusManager = null; - } - if (camera != null && previewing) { - camera.stopPreview(); - previewCallback.setHandler(null, 0); - previewing = false; - } - } - - /** - * A single preview frame will be returned to the handler supplied. The data - * will arrive as byte[] in the message.obj field, with width and height - * encoded as message.arg1 and message.arg2, respectively. - * - * @param handler - * The handler to send the message to. - * @param message - * The what field of the message to be sent. - */ - public synchronized void requestPreviewFrame(Handler handler, int message) { - Camera theCamera = camera; - if (theCamera != null && previewing) { - previewCallback.setHandler(handler, message); - theCamera.setOneShotPreviewCallback(previewCallback); - } - } - - /** - * Allows third party apps to specify the camera ID, rather than determine - * it automatically based on available cameras and their orientation. - * - * @param cameraId - * camera ID of the camera to use. A negative value means - * "no preference". - */ - public synchronized void setManualCameraId(int cameraId) { - requestedCameraId = cameraId; - } - - /** - * 获取相机分辨率 - * - * @return - */ - public Point getCameraResolution() { - return configManager.getCameraResolution(); - } - - public Size getPreviewSize() { - if (null != camera) { - return camera.getParameters().getPreviewSize(); - } - return null; - } - - public void openLight() { - if (camera != null) { - parameter = camera.getParameters(); - parameter.setFlashMode(Parameters.FLASH_MODE_TORCH); - camera.setParameters(parameter); - } - } - - public void offLight() { - if (camera != null) { - parameter = camera.getParameters(); - parameter.setFlashMode(Parameters.FLASH_MODE_OFF); - camera.setParameters(parameter); - } - } -} diff --git a/app/src/main/java/com/dtr/zxing/camera/PreviewCallback.java b/app/src/main/java/com/dtr/zxing/camera/PreviewCallback.java deleted file mode 100644 index c27c6928f..000000000 --- a/app/src/main/java/com/dtr/zxing/camera/PreviewCallback.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * 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. - */ - -package com.dtr.zxing.camera; - -import android.graphics.Point; -import android.hardware.Camera; -import android.os.Handler; -import android.os.Message; -import android.util.Log; - -public class PreviewCallback implements Camera.PreviewCallback { - - private static final String TAG = PreviewCallback.class.getSimpleName(); - - private final CameraConfigurationManager configManager; - private Handler previewHandler; - private int previewMessage; - - public PreviewCallback(CameraConfigurationManager configManager) { - this.configManager = configManager; - } - - public void setHandler(Handler previewHandler, int previewMessage) { - this.previewHandler = previewHandler; - this.previewMessage = previewMessage; - } - - @Override - public void onPreviewFrame(byte[] data, Camera camera) { - Point cameraResolution = configManager.getCameraResolution(); - Handler thePreviewHandler = previewHandler; - if (cameraResolution != null && thePreviewHandler != null) { - Message message = thePreviewHandler.obtainMessage(previewMessage, cameraResolution.x, cameraResolution.y, data); - message.sendToTarget(); - previewHandler = null; - } else { - Log.d(TAG, "Got preview callback, but no handler or resolution available"); - } - } - -} diff --git a/app/src/main/java/com/dtr/zxing/camera/open/OpenCameraInterface.java b/app/src/main/java/com/dtr/zxing/camera/open/OpenCameraInterface.java deleted file mode 100644 index f28662168..000000000 --- a/app/src/main/java/com/dtr/zxing/camera/open/OpenCameraInterface.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (C) 2012 ZXing authors - * - * 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. - */ - -package com.dtr.zxing.camera.open; - -import android.hardware.Camera; -import android.util.Log; - -public class OpenCameraInterface { - - private static final String TAG = OpenCameraInterface.class.getName(); - - /** - * Opens the requested camera with {@link android.hardware.Camera#open(int)}, if one exists. - * - * @param cameraId - * camera ID of the camera to use. A negative value means - * "no preference" - * @return handle to {@link android.hardware.Camera} that was opened - */ - public static Camera open(int cameraId) { - - int numCameras = Camera.getNumberOfCameras(); - if (numCameras == 0) { - Log.w(TAG, "No cameras!"); - return null; - } - - boolean explicitRequest = cameraId >= 0; - - if (!explicitRequest) { - // Select a camera if no explicit camera requested - int index = 0; - while (index < numCameras) { - Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); - Camera.getCameraInfo(index, cameraInfo); - if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) { - break; - } - index++; - } - - cameraId = index; - } - - Camera camera; - if (cameraId < numCameras) { - Log.i(TAG, "Opening camera #" + cameraId); - camera = Camera.open(cameraId); - } else { - if (explicitRequest) { - Log.w(TAG, "Requested camera does not exist: " + cameraId); - camera = null; - } else { - Log.i(TAG, "No camera facing back; returning camera #0"); - camera = Camera.open(0); - } - } - - return camera; - } - - /** - * Opens a rear-facing camera with {@link android.hardware.Camera#open(int)}, if one exists, - * or opens camera 0. - * - * @return handle to {@link android.hardware.Camera} that was opened - */ - public static Camera open() { - return open(-1); - } - -} diff --git a/app/src/main/java/com/dtr/zxing/decode/DecodeFormatManager.java b/app/src/main/java/com/dtr/zxing/decode/DecodeFormatManager.java deleted file mode 100644 index bdfe47088..000000000 --- a/app/src/main/java/com/dtr/zxing/decode/DecodeFormatManager.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * 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. - */ - -package com.dtr.zxing.decode; - -import com.google.zxing.BarcodeFormat; - -import java.util.Collection; -import java.util.EnumSet; -import java.util.Set; - -public class DecodeFormatManager { - - // 1D解码 - private static final Set PRODUCT_FORMATS; - private static final Set INDUSTRIAL_FORMATS; - private static final Set ONE_D_FORMATS; - - // 二维码解码 - private static final Set QR_CODE_FORMATS; - - static { - PRODUCT_FORMATS = EnumSet.of(BarcodeFormat.UPC_A, BarcodeFormat.UPC_E, BarcodeFormat.EAN_13, BarcodeFormat.EAN_8, BarcodeFormat.RSS_14, BarcodeFormat.RSS_EXPANDED); - INDUSTRIAL_FORMATS = EnumSet.of(BarcodeFormat.CODE_39, BarcodeFormat.CODE_93, BarcodeFormat.CODE_128, BarcodeFormat.ITF, BarcodeFormat.CODABAR); - ONE_D_FORMATS = EnumSet.copyOf(PRODUCT_FORMATS); - ONE_D_FORMATS.addAll(INDUSTRIAL_FORMATS); - - QR_CODE_FORMATS = EnumSet.of(BarcodeFormat.QR_CODE); - } - - public static Collection getQrCodeFormats() { - return QR_CODE_FORMATS; - } - - public static Collection getBarCodeFormats() { - return ONE_D_FORMATS; - } -} diff --git a/app/src/main/java/com/dtr/zxing/decode/DecodeHandler.java b/app/src/main/java/com/dtr/zxing/decode/DecodeHandler.java deleted file mode 100644 index 312b27340..000000000 --- a/app/src/main/java/com/dtr/zxing/decode/DecodeHandler.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * 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. - */ - -package com.dtr.zxing.decode; - -import android.graphics.Bitmap; -import android.graphics.Rect; -import android.hardware.Camera.Size; -import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; -import android.os.Message; - -import com.dtr.zxing.activity.CaptureActivity; -import com.google.zxing.BinaryBitmap; -import com.google.zxing.DecodeHintType; -import com.google.zxing.MultiFormatReader; -import com.google.zxing.PlanarYUVLuminanceSource; -import com.google.zxing.ReaderException; -import com.google.zxing.Result; -import com.google.zxing.common.HybridBinarizer; - -import java.io.ByteArrayOutputStream; -import java.util.Map; - -import net.oschina.app.R; - -public class DecodeHandler extends Handler { - - private final CaptureActivity activity; - private final MultiFormatReader multiFormatReader; - private boolean running = true; - - public DecodeHandler(CaptureActivity activity, Map hints) { - multiFormatReader = new MultiFormatReader(); - multiFormatReader.setHints(hints); - this.activity = activity; - } - - @Override - public void handleMessage(Message message) { - if (!running) { - return; - } - switch (message.what) { - case R.id.decode: - decode((byte[]) message.obj, message.arg1, message.arg2); - break; - case R.id.quit: - running = false; - Looper.myLooper().quit(); - break; - } - } - - /** - * Decode the data within the viewfinder rectangle, and time how long it - * took. For efficiency, reuse the same reader objects from one decode to - * the next. - * - * @param data - * The YUV preview frame. - * @param width - * The width of the preview frame. - * @param height - * The height of the preview frame. - */ - private void decode(byte[] data, int width, int height) { - Size size = activity.getCameraManager().getPreviewSize(); - - // 这里需要将获取的data翻转一下,因为相机默认拿的的横屏的数据 - byte[] rotatedData = new byte[data.length]; - for (int y = 0; y < size.height; y++) { - for (int x = 0; x < size.width; x++) - rotatedData[x * size.height + size.height - y - 1] = data[x + y * size.width]; - } - - // 宽高也要调整 - int tmp = size.width; - size.width = size.height; - size.height = tmp; - - Result rawResult = null; - PlanarYUVLuminanceSource source = buildLuminanceSource(rotatedData, size.width, size.height); - if (source != null) { - BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); - try { - rawResult = multiFormatReader.decodeWithState(bitmap); - } catch (ReaderException re) { - // continue - } finally { - multiFormatReader.reset(); - } - } - - Handler handler = activity.getHandler(); - if (rawResult != null) { - // Don't log the barcode contents for security. - if (handler != null) { - Message message = Message.obtain(handler, R.id.decode_succeeded, rawResult); - Bundle bundle = new Bundle(); - bundleThumbnail(source, bundle); - message.setData(bundle); - message.sendToTarget(); - } - } else { - if (handler != null) { - Message message = Message.obtain(handler, R.id.decode_failed); - message.sendToTarget(); - } - } - - } - - private static void bundleThumbnail(PlanarYUVLuminanceSource source, Bundle bundle) { - int[] pixels = source.renderThumbnail(); - int width = source.getThumbnailWidth(); - int height = source.getThumbnailHeight(); - Bitmap bitmap = Bitmap.createBitmap(pixels, 0, width, width, height, Bitmap.Config.ARGB_8888); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - bitmap.compress(Bitmap.CompressFormat.JPEG, 50, out); - bundle.putByteArray(DecodeThread.BARCODE_BITMAP, out.toByteArray()); - } - - /** - * A factory method to build the appropriate LuminanceSource object based on - * the format of the preview buffers, as described by Camera.Parameters. - * - * @param data - * A preview frame. - * @param width - * The width of the image. - * @param height - * The height of the image. - * @return A PlanarYUVLuminanceSource instance. - */ - public PlanarYUVLuminanceSource buildLuminanceSource(byte[] data, int width, int height) { - Rect rect = activity.getCropRect(); - if (rect == null) { - return null; - } - // Go ahead and assume it's YUV rather than die. - return new PlanarYUVLuminanceSource(data, width, height, rect.left, rect.top, rect.width(), rect.height(), false); - } - -} diff --git a/app/src/main/java/com/dtr/zxing/decode/DecodeThread.java b/app/src/main/java/com/dtr/zxing/decode/DecodeThread.java deleted file mode 100644 index 1dac54d38..000000000 --- a/app/src/main/java/com/dtr/zxing/decode/DecodeThread.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * 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. - */ - -package com.dtr.zxing.decode; - -import android.os.Handler; -import android.os.Looper; - -import com.dtr.zxing.activity.CaptureActivity; -import com.google.zxing.BarcodeFormat; -import com.google.zxing.DecodeHintType; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumMap; -import java.util.EnumSet; -import java.util.Map; -import java.util.concurrent.CountDownLatch; - -/** - * This thread does all the heavy lifting of decoding the images. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public class DecodeThread extends Thread { - - public static final String BARCODE_BITMAP = "barcode_bitmap"; - - public static final int BARCODE_MODE = 0X100; - public static final int QRCODE_MODE = 0X200; - public static final int ALL_MODE = 0X300; - - private final CaptureActivity activity; - private final Map hints; - private Handler handler; - private final CountDownLatch handlerInitLatch; - - public DecodeThread(CaptureActivity activity, int decodeMode) { - - this.activity = activity; - handlerInitLatch = new CountDownLatch(1); - - hints = new EnumMap(DecodeHintType.class); - - Collection decodeFormats = new ArrayList(); - decodeFormats.addAll(EnumSet.of(BarcodeFormat.AZTEC)); - decodeFormats.addAll(EnumSet.of(BarcodeFormat.PDF_417)); - - switch (decodeMode) { - case BARCODE_MODE: - decodeFormats.addAll(DecodeFormatManager.getBarCodeFormats()); - break; - - case QRCODE_MODE: - decodeFormats.addAll(DecodeFormatManager.getQrCodeFormats()); - break; - - case ALL_MODE: - decodeFormats.addAll(DecodeFormatManager.getBarCodeFormats()); - decodeFormats.addAll(DecodeFormatManager.getQrCodeFormats()); - break; - - default: - break; - } - - hints.put(DecodeHintType.POSSIBLE_FORMATS, decodeFormats); - } - - public Handler getHandler() { - try { - handlerInitLatch.await(); - } catch (InterruptedException ie) { - // continue? - } - return handler; - } - - @Override - public void run() { - Looper.prepare(); - handler = new DecodeHandler(activity, hints); - handlerInitLatch.countDown(); - Looper.loop(); - } - -} diff --git a/app/src/main/java/com/dtr/zxing/utils/BeepManager.java b/app/src/main/java/com/dtr/zxing/utils/BeepManager.java deleted file mode 100644 index fd7a2c298..000000000 --- a/app/src/main/java/com/dtr/zxing/utils/BeepManager.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * 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. - */ - -package com.dtr.zxing.utils; - -import android.app.Activity; -import android.content.Context; -import android.content.SharedPreferences; -import android.content.res.AssetFileDescriptor; -import android.media.AudioManager; -import android.media.MediaPlayer; -import android.os.Vibrator; -import android.preference.PreferenceManager; -import android.util.Log; -import com.dtr.zxing.activity.CaptureActivity; - - -import java.io.Closeable; -import java.io.IOException; - -import net.oschina.app.R; - -/** - * Manages beeps and vibrations for {@link CaptureActivity}. - */ -public class BeepManager implements MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener, Closeable { - - private static final String TAG = BeepManager.class.getSimpleName(); - - private static final float BEEP_VOLUME = 0.10f; - private static final long VIBRATE_DURATION = 200L; - - private final Activity activity; - private MediaPlayer mediaPlayer; - private boolean playBeep; - private boolean vibrate; - - public BeepManager(Activity activity) { - this.activity = activity; - this.mediaPlayer = null; - updatePrefs(); - } - - private synchronized void updatePrefs() { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity); - playBeep = shouldBeep(prefs, activity); - vibrate = true; - if (playBeep && mediaPlayer == null) { - // The volume on STREAM_SYSTEM is not adjustable, and users found it - // too loud, - // so we now play on the music stream. - activity.setVolumeControlStream(AudioManager.STREAM_MUSIC); - mediaPlayer = buildMediaPlayer(activity); - } - } - - public synchronized void playBeepSoundAndVibrate() { - if (playBeep && mediaPlayer != null) { - mediaPlayer.start(); - } - if (vibrate) { - Vibrator vibrator = (Vibrator) activity.getSystemService(Context.VIBRATOR_SERVICE); - vibrator.vibrate(VIBRATE_DURATION); - } - } - - private static boolean shouldBeep(SharedPreferences prefs, Context activity) { - boolean shouldPlayBeep = true; - if (shouldPlayBeep) { - // See if sound settings overrides this - AudioManager audioService = (AudioManager) activity.getSystemService(Context.AUDIO_SERVICE); - if (audioService.getRingerMode() != AudioManager.RINGER_MODE_NORMAL) { - shouldPlayBeep = false; - } - } - return shouldPlayBeep; - } - - private MediaPlayer buildMediaPlayer(Context activity) { - MediaPlayer mediaPlayer = new MediaPlayer(); - mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); - mediaPlayer.setOnCompletionListener(this); - mediaPlayer.setOnErrorListener(this); - try { - AssetFileDescriptor file = activity.getResources().openRawResourceFd(R.raw.qr_sacn); - try { - mediaPlayer.setDataSource(file.getFileDescriptor(), file.getStartOffset(), file.getLength()); - } finally { - file.close(); - } - mediaPlayer.setVolume(BEEP_VOLUME, BEEP_VOLUME); - mediaPlayer.prepare(); - return mediaPlayer; - } catch (IOException ioe) { - Log.w(TAG, ioe); - mediaPlayer.release(); - return null; - } - } - - @Override - public void onCompletion(MediaPlayer mp) { - // When the beep has finished playing, rewind to queue up another one. - mp.seekTo(0); - } - - @Override - public synchronized boolean onError(MediaPlayer mp, int what, int extra) { - if (what == MediaPlayer.MEDIA_ERROR_SERVER_DIED) { - // we are finished, so put up an appropriate error toast if required - // and finish - activity.finish(); - } else { - // possibly media player error, so release and recreate - mp.release(); - mediaPlayer = null; - updatePrefs(); - } - return true; - } - - @Override - public synchronized void close() { - if (mediaPlayer != null) { - mediaPlayer.release(); - mediaPlayer = null; - } - } - -} diff --git a/app/src/main/java/com/dtr/zxing/utils/CaptureActivityHandler.java b/app/src/main/java/com/dtr/zxing/utils/CaptureActivityHandler.java deleted file mode 100644 index d6272f441..000000000 --- a/app/src/main/java/com/dtr/zxing/utils/CaptureActivityHandler.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * 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. - */ - -package com.dtr.zxing.utils; - -import net.oschina.app.R; -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; - -import com.dtr.zxing.activity.CaptureActivity; -import com.dtr.zxing.camera.CameraManager; -import com.dtr.zxing.decode.DecodeThread; -import com.google.zxing.Result; - - -/** - * This class handles all the messaging which comprises the state machine for - * capture. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public class CaptureActivityHandler extends Handler { - - private final CaptureActivity activity; - private final DecodeThread decodeThread; - private final CameraManager cameraManager; - private State state; - - private enum State { - PREVIEW, SUCCESS, DONE - } - - public CaptureActivityHandler(CaptureActivity activity, CameraManager cameraManager, int decodeMode) { - this.activity = activity; - decodeThread = new DecodeThread(activity, decodeMode); - decodeThread.start(); - state = State.SUCCESS; - - // Start ourselves capturing previews and decoding. - this.cameraManager = cameraManager; - cameraManager.startPreview(); - restartPreviewAndDecode(); - } - - @Override - public void handleMessage(Message message) { - switch (message.what) { - case R.id.restart_preview: - restartPreviewAndDecode(); - break; - case R.id.decode_succeeded: - state = State.SUCCESS; - Bundle bundle = message.getData(); - - activity.handleDecode((Result) message.obj, bundle); - break; - case R.id.decode_failed: - // We're decoding as fast as possible, so when one decode fails, - // start another. - state = State.PREVIEW; - cameraManager.requestPreviewFrame(decodeThread.getHandler(), R.id.decode); - break; - case R.id.return_scan_result: - activity.setResult(Activity.RESULT_OK, (Intent) message.obj); - activity.finish(); - break; - } - } - - public void quitSynchronously() { - state = State.DONE; - cameraManager.stopPreview(); - Message quit = Message.obtain(decodeThread.getHandler(), R.id.quit); - quit.sendToTarget(); - try { - // Wait at most half a second; should be enough time, and onPause() - // will timeout quickly - decodeThread.join(500L); - } catch (InterruptedException e) { - // continue - } - - // Be absolutely sure we don't send any queued up messages - removeMessages(R.id.decode_succeeded); - removeMessages(R.id.decode_failed); - } - - private void restartPreviewAndDecode() { - if (state == State.SUCCESS) { - state = State.PREVIEW; - cameraManager.requestPreviewFrame(decodeThread.getHandler(), R.id.decode); - } - } - -} diff --git a/app/src/main/java/com/dtr/zxing/utils/InactivityTimer.java b/app/src/main/java/com/dtr/zxing/utils/InactivityTimer.java deleted file mode 100644 index 1230771b1..000000000 --- a/app/src/main/java/com/dtr/zxing/utils/InactivityTimer.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * 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. - */ - -package com.dtr.zxing.utils; - -import android.annotation.SuppressLint; -import android.app.Activity; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.AsyncTask; -import android.os.BatteryManager; -import android.os.Build; -import android.util.Log; - -/** - * Finishes an activity after a period of inactivity if the device is on battery - * power. - */ -public class InactivityTimer { - - private static final String TAG = InactivityTimer.class.getSimpleName(); - - private static final long INACTIVITY_DELAY_MS = 5 * 60 * 1000L; - - private Activity activity; - private BroadcastReceiver powerStatusReceiver; - private boolean registered; - private AsyncTask inactivityTask; - - public InactivityTimer(Activity activity) { - this.activity = activity; - powerStatusReceiver = new PowerStatusReceiver(); - registered = false; - onActivity(); - } - - @SuppressLint("NewApi") - public synchronized void onActivity() { - cancel(); - inactivityTask = new InactivityAsyncTask(); - if (Build.VERSION.SDK_INT >= 11) { - inactivityTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } else { - inactivityTask.execute(); - } - } - - public synchronized void onPause() { - cancel(); - if (registered) { - activity.unregisterReceiver(powerStatusReceiver); - registered = false; - } else { - Log.w(TAG, "PowerStatusReceiver was never registered?"); - } - } - - public synchronized void onResume() { - if (registered) { - Log.w(TAG, "PowerStatusReceiver was already registered?"); - } else { - activity.registerReceiver(powerStatusReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); - registered = true; - } - onActivity(); - } - - private synchronized void cancel() { - AsyncTask task = inactivityTask; - if (task != null) { - task.cancel(true); - inactivityTask = null; - } - } - - public void shutdown() { - cancel(); - } - - private class PowerStatusReceiver extends BroadcastReceiver { - @Override - public void onReceive(Context context, Intent intent) { - if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) { - // 0 indicates that we're on battery - boolean onBatteryNow = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) <= 0; - if (onBatteryNow) { - InactivityTimer.this.onActivity(); - } else { - InactivityTimer.this.cancel(); - } - } - } - } - - private class InactivityAsyncTask extends AsyncTask { - @Override - protected Object doInBackground(Object... objects) { - try { - Thread.sleep(INACTIVITY_DELAY_MS); - Log.i(TAG, "Finishing activity due to inactivity"); - activity.finish(); - } catch (InterruptedException e) { - // continue without killing - } - return null; - } - } - -} diff --git a/app/src/main/java/com/fourmob/datetimepicker/date/AccessibleDateAnimator.java b/app/src/main/java/com/fourmob/datetimepicker/date/AccessibleDateAnimator.java deleted file mode 100644 index d527c91ec..000000000 --- a/app/src/main/java/com/fourmob/datetimepicker/date/AccessibleDateAnimator.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.fourmob.datetimepicker.date; - -import android.content.Context; -import android.text.format.DateUtils; -import android.util.AttributeSet; -import android.view.accessibility.AccessibilityEvent; -import android.widget.ViewAnimator; - -/** - * 摘取自https://github.com/flavienlaurent/datetimepicker - * - * @author kymjs - * - */ -public class AccessibleDateAnimator extends ViewAnimator { - private long mDateMillis; - - public AccessibleDateAnimator(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public void setDateMillis(long dateMillis) { - mDateMillis = dateMillis; - } - - /** - * Announce the currently-selected date when launched. - */ - @Override - public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { - if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) { - // Clear the event's current text so that only the current date will - // be spoken. - event.getText().clear(); - int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR - | DateUtils.FORMAT_SHOW_WEEKDAY; - - String dateString = DateUtils.formatDateTime(getContext(), - mDateMillis, flags); - event.getText().add(dateString); - return true; - } - return super.dispatchPopulateAccessibilityEvent(event); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/fourmob/datetimepicker/date/DatePickerController.java b/app/src/main/java/com/fourmob/datetimepicker/date/DatePickerController.java deleted file mode 100644 index a8c6400bc..000000000 --- a/app/src/main/java/com/fourmob/datetimepicker/date/DatePickerController.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.fourmob.datetimepicker.date; - -/** - * 摘取自https://github.com/flavienlaurent/datetimepicker - * - * @author kymjs - * - */ -abstract interface DatePickerController { - public abstract int getFirstDayOfWeek(); - - public abstract int getMaxYear(); - - public abstract int getMinYear(); - - public abstract SimpleMonthAdapter.CalendarDay getSelectedDay(); - - public abstract void onDayOfMonthSelected(int year, int month, int day); - - public abstract void onYearSelected(int year); - - public abstract void registerOnDateChangedListener( - DatePickerDialog.OnDateChangedListener onDateChangedListener); - - public abstract void tryVibrate(); -} \ No newline at end of file diff --git a/app/src/main/java/com/fourmob/datetimepicker/date/DatePickerDialog.java b/app/src/main/java/com/fourmob/datetimepicker/date/DatePickerDialog.java deleted file mode 100644 index 7d862a3db..000000000 --- a/app/src/main/java/com/fourmob/datetimepicker/date/DatePickerDialog.java +++ /dev/null @@ -1,477 +0,0 @@ -package com.fourmob.datetimepicker.date; - -import java.text.DateFormatSymbols; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Locale; - -import net.oschina.app.R; -import android.app.Activity; -import android.os.Bundle; -import android.os.SystemClock; -import android.os.Vibrator; -import android.support.v4.app.DialogFragment; -import android.text.format.DateUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.Window; -import android.view.WindowManager; -import android.view.animation.AlphaAnimation; -import android.widget.Button; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.nineoldandroids.animation.ObjectAnimator; - -/** - * 摘取自https://github.com/flavienlaurent/datetimepicker - * - * @author kymjs - * - */ -public class DatePickerDialog extends DialogFragment implements - View.OnClickListener, DatePickerController { - - private static final String KEY_SELECTED_YEAR = "year"; - private static final String KEY_SELECTED_MONTH = "month"; - private static final String KEY_SELECTED_DAY = "day"; - private static final String KEY_VIBRATE = "vibrate"; - - // https://code.google.com/p/android/issues/detail?id=13050 - private static final int MAX_YEAR = 2037; - private static final int MIN_YEAR = 1902; - - private static final int UNINITIALIZED = -1; - private static final int MONTH_AND_DAY_VIEW = 0; - private static final int YEAR_VIEW = 1; - - public static final int ANIMATION_DELAY = 500; - public static final String KEY_WEEK_START = "week_start"; - public static final String KEY_YEAR_START = "year_start"; - public static final String KEY_YEAR_END = "year_end"; - public static final String KEY_CURRENT_VIEW = "current_view"; - public static final String KEY_LIST_POSITION = "list_position"; - public static final String KEY_LIST_POSITION_OFFSET = "list_position_offset"; - - private static SimpleDateFormat DAY_FORMAT = new SimpleDateFormat("dd", - Locale.getDefault()); - private static SimpleDateFormat YEAR_FORMAT = new SimpleDateFormat("yyyy", - Locale.getDefault()); - private final DateFormatSymbols mDateFormatSymbols = new DateFormatSymbols(); - - private final Calendar mCalendar = Calendar.getInstance(); - private final HashSet mListeners = new HashSet(); - private OnDateSetListener mCallBack; - - private AccessibleDateAnimator mAnimator; - private boolean mDelayAnimation = true; - private long mLastVibrate; - private int mCurrentView = UNINITIALIZED; - - private int mWeekStart = mCalendar.getFirstDayOfWeek(); - private int mMaxYear = MAX_YEAR; - private int mMinYear = MIN_YEAR; - - private String mDayPickerDescription; - private String mYearPickerDescription; - private String mSelectDay; - private String mSelectYear; - - private TextView mDayOfWeekView; - private DayPickerView mDayPickerView; - private Button mDoneButton; - private LinearLayout mMonthAndDayView; - private TextView mSelectedDayTextView; - private TextView mSelectedMonthTextView; - private Vibrator mVibrator; - private YearPickerView mYearPickerView; - private TextView mYearView; - - private boolean mVibrate = true; - private boolean mCloseOnSingleTapDay; - - private void adjustDayInMonthIfNeeded(int month, int year) { - int day = mCalendar.get(Calendar.DAY_OF_MONTH); - int daysInMonth = Utils.getDaysInMonth(month, year); - if (day > daysInMonth) { - mCalendar.set(Calendar.DAY_OF_MONTH, daysInMonth); - } - } - - public DatePickerDialog() { - // Empty constructor required for dialog fragment. DO NOT REMOVE - } - - public static DatePickerDialog newInstance( - OnDateSetListener onDateSetListener, int year, int month, int day) { - return newInstance(onDateSetListener, year, month, day, true); - } - - public static DatePickerDialog newInstance( - OnDateSetListener onDateSetListener, int year, int month, int day, - boolean vibrate) { - DatePickerDialog datePickerDialog = new DatePickerDialog(); - datePickerDialog.initialize(onDateSetListener, year, month, day, - vibrate); - return datePickerDialog; - } - - public void setVibrate(boolean vibrate) { - mVibrate = vibrate; - } - - private void setCurrentView(int currentView) { - setCurrentView(currentView, false); - } - - private void setCurrentView(int currentView, boolean forceRefresh) { - long timeInMillis = mCalendar.getTimeInMillis(); - switch (currentView) { - case MONTH_AND_DAY_VIEW: - ObjectAnimator monthDayAnim = Utils.getPulseAnimator( - mMonthAndDayView, 0.9F, 1.05F); - if (mDelayAnimation) { - monthDayAnim.setStartDelay(ANIMATION_DELAY); - mDelayAnimation = false; - } - mDayPickerView.onDateChanged(); - if (mCurrentView != currentView || forceRefresh) { - mMonthAndDayView.setSelected(true); - mYearView.setSelected(false); - mAnimator.setDisplayedChild(MONTH_AND_DAY_VIEW); - mCurrentView = currentView; - } - monthDayAnim.start(); - String monthDayDesc = DateUtils.formatDateTime(getActivity(), - timeInMillis, DateUtils.FORMAT_SHOW_DATE); - mAnimator.setContentDescription(mDayPickerDescription + ": " - + monthDayDesc); - Utils.tryAccessibilityAnnounce(mAnimator, mSelectDay); - break; - case YEAR_VIEW: - ObjectAnimator yearAnim = Utils.getPulseAnimator(mYearView, 0.85F, - 1.1F); - if (mDelayAnimation) { - yearAnim.setStartDelay(ANIMATION_DELAY); - mDelayAnimation = false; - } - mYearPickerView.onDateChanged(); - if (mCurrentView != currentView || forceRefresh) { - mMonthAndDayView.setSelected(false); - mYearView.setSelected(true); - mAnimator.setDisplayedChild(YEAR_VIEW); - mCurrentView = currentView; - } - yearAnim.start(); - String dayDesc = YEAR_FORMAT.format(timeInMillis); - mAnimator.setContentDescription(mYearPickerDescription + ": " - + dayDesc); - Utils.tryAccessibilityAnnounce(mAnimator, mSelectYear); - break; - } - } - - private void updateDisplay(boolean announce) { - /* - * if (mDayOfWeekView != null) { - * mDayOfWeekView.setText(mCalendar.getDisplayName(Calendar.DAY_OF_WEEK, - * Calendar.LONG, - * Locale.getDefault()).toUpperCase(Locale.getDefault())); } - * - * mSelectedMonthTextView.setText(mCalendar.getDisplayName(Calendar.MONTH - * , Calendar.SHORT, - * Locale.getDefault()).toUpperCase(Locale.getDefault())); - */ - - if (this.mDayOfWeekView != null) { - this.mCalendar.setFirstDayOfWeek(mWeekStart); - this.mDayOfWeekView - .setText(mDateFormatSymbols.getWeekdays()[this.mCalendar - .get(Calendar.DAY_OF_WEEK)].toUpperCase(Locale - .getDefault())); - } - - this.mSelectedMonthTextView - .setText(mDateFormatSymbols.getMonths()[this.mCalendar - .get(Calendar.MONTH)].toUpperCase(Locale.getDefault())); - - mSelectedDayTextView.setText(DAY_FORMAT.format(mCalendar.getTime())); - mYearView.setText(YEAR_FORMAT.format(mCalendar.getTime())); - - // Accessibility. - long millis = mCalendar.getTimeInMillis(); - mAnimator.setDateMillis(millis); - int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_NO_YEAR; - String monthAndDayText = DateUtils.formatDateTime(getActivity(), - millis, flags); - mMonthAndDayView.setContentDescription(monthAndDayText); - - if (announce) { - flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR; - String fullDateText = DateUtils.formatDateTime(getActivity(), - millis, flags); - Utils.tryAccessibilityAnnounce(mAnimator, fullDateText); - } - } - - private void updatePickers() { - Iterator iterator = mListeners.iterator(); - while (iterator.hasNext()) { - iterator.next().onDateChanged(); - } - } - - @Override - public int getFirstDayOfWeek() { - return mWeekStart; - } - - @Override - public int getMaxYear() { - return mMaxYear; - } - - @Override - public int getMinYear() { - return mMinYear; - } - - @Override - public SimpleMonthAdapter.CalendarDay getSelectedDay() { - return new SimpleMonthAdapter.CalendarDay(mCalendar); - } - - public void initialize(OnDateSetListener onDateSetListener, int year, - int month, int day, boolean vibrate) { - if (year > MAX_YEAR) - throw new IllegalArgumentException("year end must < " + MAX_YEAR); - if (year < MIN_YEAR) - throw new IllegalArgumentException("year end must > " + MIN_YEAR); - mCallBack = onDateSetListener; - mCalendar.set(Calendar.YEAR, year); - mCalendar.set(Calendar.MONTH, month); - mCalendar.set(Calendar.DAY_OF_MONTH, day); - mVibrate = vibrate; - } - - @Override - public void onClick(View view) { - tryVibrate(); - if (view.getId() == R.id.date_picker_year) - setCurrentView(YEAR_VIEW); - else if (view.getId() == R.id.date_picker_month_and_day) - setCurrentView(MONTH_AND_DAY_VIEW); - } - - @Override - public void onCreate(Bundle bundle) { - super.onCreate(bundle); - Activity activity = getActivity(); - activity.getWindow().setSoftInputMode( - WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); - mVibrator = ((Vibrator) activity.getSystemService("vibrator")); - if (bundle != null) { - mCalendar.set(Calendar.YEAR, bundle.getInt(KEY_SELECTED_YEAR)); - mCalendar.set(Calendar.MONTH, bundle.getInt(KEY_SELECTED_MONTH)); - mCalendar.set(Calendar.DAY_OF_MONTH, - bundle.getInt(KEY_SELECTED_DAY)); - mVibrate = bundle.getBoolean(KEY_VIBRATE); - } - } - - @Override - public View onCreateView(LayoutInflater layoutInflater, ViewGroup parent, - Bundle bundle) { - getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); - - View view = layoutInflater.inflate(R.layout.date_picker_dialog, null); - - mDayOfWeekView = ((TextView) view.findViewById(R.id.date_picker_header)); - mMonthAndDayView = ((LinearLayout) view - .findViewById(R.id.date_picker_month_and_day)); - mMonthAndDayView.setOnClickListener(this); - mSelectedMonthTextView = ((TextView) view - .findViewById(R.id.date_picker_month)); - mSelectedDayTextView = ((TextView) view - .findViewById(R.id.date_picker_day)); - mYearView = ((TextView) view.findViewById(R.id.date_picker_year)); - mYearView.setOnClickListener(this); - - int listPosition = -1; - int currentView = MONTH_AND_DAY_VIEW; - int listPositionOffset = 0; - if (bundle != null) { - mWeekStart = bundle.getInt(KEY_WEEK_START); - mMinYear = bundle.getInt(KEY_YEAR_START); - mMaxYear = bundle.getInt(KEY_YEAR_END); - currentView = bundle.getInt(KEY_CURRENT_VIEW); - listPosition = bundle.getInt(KEY_LIST_POSITION); - listPositionOffset = bundle.getInt(KEY_LIST_POSITION_OFFSET); - } - - Activity activity = getActivity(); - mDayPickerView = new DayPickerView(activity, this); - mYearPickerView = new YearPickerView(activity, this); - - mDayPickerDescription = "按月份划分的日期网格"; - mSelectDay = "选择月份和日期"; - mYearPickerDescription = "年份列表"; - mSelectYear = "选择年份"; - - mAnimator = ((AccessibleDateAnimator) view.findViewById(R.id.animator)); - mAnimator.addView(mDayPickerView); - mAnimator.addView(mYearPickerView); - mAnimator.setDateMillis(mCalendar.getTimeInMillis()); - - AlphaAnimation inAlphaAnimation = new AlphaAnimation(0.0F, 1.0F); - inAlphaAnimation.setDuration(300L); - mAnimator.setInAnimation(inAlphaAnimation); - - AlphaAnimation outAlphaAnimation = new AlphaAnimation(1.0F, 0.0F); - outAlphaAnimation.setDuration(300L); - mAnimator.setOutAnimation(outAlphaAnimation); - - mDoneButton = ((Button) view.findViewById(R.id.done)); - mDoneButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - onDoneButtonClick(); - } - }); - - updateDisplay(false); - setCurrentView(currentView, true); - - if (listPosition != -1) { - if (currentView == MONTH_AND_DAY_VIEW) { - mDayPickerView.postSetSelection(listPosition); - } - if (currentView == YEAR_VIEW) { - mYearPickerView.postSetSelectionFromTop(listPosition, - listPositionOffset); - } - } - return view; - } - - private void onDoneButtonClick() { - tryVibrate(); - if (mCallBack != null) { - mCallBack.onDateSet(this, mCalendar.get(Calendar.YEAR), - mCalendar.get(Calendar.MONTH), - mCalendar.get(Calendar.DAY_OF_MONTH)); - } - dismiss(); - } - - @Override - public void onDayOfMonthSelected(int year, int month, int day) { - mCalendar.set(Calendar.YEAR, year); - mCalendar.set(Calendar.MONTH, month); - mCalendar.set(Calendar.DAY_OF_MONTH, day); - updatePickers(); - updateDisplay(true); - - if (mCloseOnSingleTapDay) { - onDoneButtonClick(); - } - } - - @Override - public void onSaveInstanceState(Bundle bundle) { - super.onSaveInstanceState(bundle); - bundle.putInt(KEY_SELECTED_YEAR, mCalendar.get(Calendar.YEAR)); - bundle.putInt(KEY_SELECTED_MONTH, mCalendar.get(Calendar.MONTH)); - bundle.putInt(KEY_SELECTED_DAY, mCalendar.get(Calendar.DAY_OF_MONTH)); - bundle.putInt(KEY_WEEK_START, mWeekStart); - bundle.putInt(KEY_YEAR_START, mMinYear); - bundle.putInt(KEY_YEAR_END, mMaxYear); - bundle.putInt(KEY_CURRENT_VIEW, mCurrentView); - - int listPosition = -1; - if (mCurrentView == 0) { - listPosition = mDayPickerView.getMostVisiblePosition(); - } - if (mCurrentView == 1) { - listPosition = mYearPickerView.getFirstVisiblePosition(); - bundle.putInt(KEY_LIST_POSITION_OFFSET, - mYearPickerView.getFirstPositionOffset()); - } - bundle.putInt(KEY_LIST_POSITION, listPosition); - bundle.putBoolean(KEY_VIBRATE, mVibrate); - } - - @Override - public void onYearSelected(int year) { - adjustDayInMonthIfNeeded(mCalendar.get(Calendar.MONTH), year); - mCalendar.set(Calendar.YEAR, year); - updatePickers(); - setCurrentView(MONTH_AND_DAY_VIEW); - updateDisplay(true); - } - - @Override - public void registerOnDateChangedListener( - OnDateChangedListener onDateChangedListener) { - mListeners.add(onDateChangedListener); - } - - public void setFirstDayOfWeek(int startOfWeek) { - if (startOfWeek < Calendar.SUNDAY || startOfWeek > Calendar.SATURDAY) { - throw new IllegalArgumentException( - "Value must be between Calendar.SUNDAY and " - + "Calendar.SATURDAY"); - } - mWeekStart = startOfWeek; - if (mDayPickerView != null) { - mDayPickerView.onChange(); - } - } - - public void setOnDateSetListener(OnDateSetListener onDateSetListener) { - mCallBack = onDateSetListener; - } - - public void setYearRange(int minYear, int maxYear) { - if (maxYear < minYear) - throw new IllegalArgumentException( - "Year end must be larger than year start"); - if (maxYear > MAX_YEAR) - throw new IllegalArgumentException("max year end must < " - + MAX_YEAR); - if (minYear < MIN_YEAR) - throw new IllegalArgumentException("min year end must > " - + MIN_YEAR); - mMinYear = minYear; - mMaxYear = maxYear; - if (mDayPickerView != null) - mDayPickerView.onChange(); - } - - @Override - public void tryVibrate() { - if (mVibrator != null && mVibrate) { - long timeInMillis = SystemClock.uptimeMillis(); - if (timeInMillis - mLastVibrate >= 125L) { - mVibrator.vibrate(5L); - mLastVibrate = timeInMillis; - } - } - } - - public void setCloseOnSingleTapDay(boolean closeOnSingleTapDay) { - mCloseOnSingleTapDay = closeOnSingleTapDay; - } - - static abstract interface OnDateChangedListener { - public abstract void onDateChanged(); - } - - public static abstract interface OnDateSetListener { - public abstract void onDateSet(DatePickerDialog datePickerDialog, - int year, int month, int day); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/fourmob/datetimepicker/date/DayPickerView.java b/app/src/main/java/com/fourmob/datetimepicker/date/DayPickerView.java deleted file mode 100644 index 495b7f20f..000000000 --- a/app/src/main/java/com/fourmob/datetimepicker/date/DayPickerView.java +++ /dev/null @@ -1,281 +0,0 @@ -package com.fourmob.datetimepicker.date; - -import android.annotation.TargetApi; -import android.content.Context; -import android.os.Build; -import android.os.Handler; -import android.view.View; -import android.view.ViewConfiguration; -import android.widget.AbsListView; -import android.widget.ListView; - -/** - * 摘取自https://github.com/flavienlaurent/datetimepicker - * - * @author kymjs - * - */ -public class DayPickerView extends ListView implements - AbsListView.OnScrollListener, DatePickerDialog.OnDateChangedListener { - - protected static final int GOTO_SCROLL_DURATION = 250; - protected static final int SCROLL_CHANGE_DELAY = 40; - - public static int LIST_TOP_OFFSET = -1; - - protected Context mContext; - protected Handler mHandler = new Handler(); - - protected SimpleMonthAdapter mAdapter; - private final DatePickerController mController; - - protected int mCurrentMonthDisplayed; - protected int mCurrentScrollState = 0; - private boolean mPerformingScroll; - protected long mPreviousScrollPosition; - protected int mPreviousScrollState = 0; - - protected ScrollStateRunnable mScrollStateChangedRunnable = new ScrollStateRunnable(); - protected SimpleMonthAdapter.CalendarDay mSelectedDay = new SimpleMonthAdapter.CalendarDay(); - protected SimpleMonthAdapter.CalendarDay mTempDay = new SimpleMonthAdapter.CalendarDay(); - - protected int mNumWeeks = 6; - protected boolean mShowWeekNumber = false; - protected int mDaysPerWeek = 7; - - protected float mFriction = 1.0F; - - public DayPickerView(Context context, - DatePickerController datePickerController) { - super(context); - mController = datePickerController; - mController.registerOnDateChangedListener(this); - setLayoutParams(new AbsListView.LayoutParams(LayoutParams.MATCH_PARENT, - LayoutParams.MATCH_PARENT)); - setDrawSelectorOnTop(false); - init(context); - onDateChanged(); - } - - public int getMostVisiblePosition() { - final int firstPosition = getFirstVisiblePosition(); - final int height = getHeight(); - - int maxDisplayedHeight = 0; - int mostVisibleIndex = 0; - int i = 0; - int bottom = 0; - while (bottom < height) { - View child = getChildAt(i); - if (child == null) { - break; - } - bottom = child.getBottom(); - int displayedHeight = Math.min(bottom, height) - - Math.max(0, child.getTop()); - if (displayedHeight > maxDisplayedHeight) { - mostVisibleIndex = i; - maxDisplayedHeight = displayedHeight; - } - i++; - } - return firstPosition + mostVisibleIndex; - } - - public boolean goTo(SimpleMonthAdapter.CalendarDay day, boolean animate, - boolean setSelected, boolean forceScroll) { - // Set the selected day - if (setSelected) { - mSelectedDay.set(day); - } - - mTempDay.set(day); - final int position = (day.year - mController.getMinYear()) - * SimpleMonthAdapter.MONTHS_IN_YEAR + day.month; - - View child; - int i = 0; - int top = 0; - // Find a child that's completely in the view - do { - child = getChildAt(i++); - if (child == null) { - break; - } - top = child.getTop(); - } while (top < 0); - - // Compute the first and last position visible - int selectedPosition; - if (child != null) { - selectedPosition = getPositionForView(child); - } else { - selectedPosition = 0; - } - - if (setSelected) { - mAdapter.setSelectedDay(mSelectedDay); - } - - // Check if the selected day is now outside of our visible range - // and if so scroll to the month that contains it - if (position != selectedPosition || forceScroll) { - setMonthDisplayed(mTempDay); - mPreviousScrollState = OnScrollListener.SCROLL_STATE_FLING; - if (animate && Build.VERSION.SDK_INT >= 11) { - smoothScrollToPositionFromTop(position, LIST_TOP_OFFSET, - GOTO_SCROLL_DURATION); - return true; - } else { - postSetSelection(position); - } - } else if (setSelected) { - setMonthDisplayed(mSelectedDay); - } - return false; - } - - public void init(Context paramContext) { - mContext = paramContext; - setUpListView(); - setUpAdapter(); - setAdapter(mAdapter); - } - - @Override - protected void layoutChildren() { - super.layoutChildren(); - if (mPerformingScroll) { - mPerformingScroll = false; - } - } - - public void onChange() { - setUpAdapter(); - setAdapter(mAdapter); - } - - @Override - public void onDateChanged() { - goTo(mController.getSelectedDay(), false, true, true); - } - - @Override - public void onScroll(AbsListView view, int firstVisibleItem, - int visibleItemCount, int totalItemCount) { - SimpleMonthView child = (SimpleMonthView) view.getChildAt(0); - if (child == null) { - return; - } - - // Figure out where we are - long currScroll = view.getFirstVisiblePosition() * child.getHeight() - - child.getBottom(); - mPreviousScrollPosition = currScroll; - mPreviousScrollState = mCurrentScrollState; - } - - @Override - public void onScrollStateChanged(AbsListView absListView, int scroll) { - mScrollStateChangedRunnable.doScrollStateChange(absListView, scroll); - } - - public void postSetSelection(final int position) { - clearFocus(); - post(new Runnable() { - @Override - public void run() { - DayPickerView.this.setSelection(position); - } - }); - onScrollStateChanged(this, 0); - } - - protected void setMonthDisplayed(SimpleMonthAdapter.CalendarDay calendarDay) { - this.mCurrentMonthDisplayed = calendarDay.month; - invalidateViews(); - } - - protected void setUpAdapter() { - if (mAdapter == null) { - mAdapter = new SimpleMonthAdapter(getContext(), mController); - } - mAdapter.setSelectedDay(this.mSelectedDay); - mAdapter.notifyDataSetChanged(); - } - - protected void setUpListView() { - setCacheColorHint(0); - setDivider(null); - setItemsCanFocus(true); - setFastScrollEnabled(false); - setVerticalScrollBarEnabled(false); - setOnScrollListener(this); - setFadingEdgeLength(0); - setFrictionIfSupported(ViewConfiguration.getScrollFriction() - * mFriction); - } - - @TargetApi(Build.VERSION_CODES.HONEYCOMB) - void setFrictionIfSupported(float friction) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - setFriction(friction); - } - } - - protected class ScrollStateRunnable implements Runnable { - private int mNewState; - - /** - * Sets up the runnable with a short delay in case the scroll state - * immediately changes again. - * - * @param view - * The list view that changed state - * @param scrollState - * The new state it changed to - */ - public void doScrollStateChange(AbsListView view, int scrollState) { - mHandler.removeCallbacks(this); - mNewState = scrollState; - mHandler.postDelayed(this, SCROLL_CHANGE_DELAY); - } - - @Override - public void run() { - mCurrentScrollState = mNewState; - // Fix the position after a scroll or a fling ends - if (mNewState == OnScrollListener.SCROLL_STATE_IDLE - && mPreviousScrollState != OnScrollListener.SCROLL_STATE_IDLE - && mPreviousScrollState != OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) { - mPreviousScrollState = mNewState; - int i = 0; - View child = getChildAt(i); - while (child != null && child.getBottom() <= 0) { - child = getChildAt(++i); - } - if (child == null) { - // The view is no longer visible, just return - return; - } - int firstPosition = getFirstVisiblePosition(); - int lastPosition = getLastVisiblePosition(); - boolean scroll = firstPosition != 0 - && lastPosition != getCount() - 1; - final int top = child.getTop(); - final int bottom = child.getBottom(); - final int midpoint = getHeight() / 2; - if (scroll && top < LIST_TOP_OFFSET) { - if (bottom > midpoint) { - smoothScrollBy(top, GOTO_SCROLL_DURATION); - } else { - smoothScrollBy(bottom, GOTO_SCROLL_DURATION); - } - } - } else { - mPreviousScrollState = mNewState; - } - } - } - -} \ No newline at end of file diff --git a/app/src/main/java/com/fourmob/datetimepicker/date/SimpleMonthAdapter.java b/app/src/main/java/com/fourmob/datetimepicker/date/SimpleMonthAdapter.java deleted file mode 100644 index b46aec39f..000000000 --- a/app/src/main/java/com/fourmob/datetimepicker/date/SimpleMonthAdapter.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.fourmob.datetimepicker.date; - -import java.util.Calendar; -import java.util.HashMap; - -import android.content.Context; -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewGroup.LayoutParams; -import android.widget.AbsListView; -import android.widget.BaseAdapter; - -/** - * 摘取自https://github.com/flavienlaurent/datetimepicker - * - * @author kymjs - * - */ -public class SimpleMonthAdapter extends BaseAdapter implements - SimpleMonthView.OnDayClickListener { - - protected static int WEEK_7_OVERHANG_HEIGHT = 7; - protected static final int MONTHS_IN_YEAR = 12; - - private final Context mContext; - private final DatePickerController mController; - - private CalendarDay mSelectedDay; - - public SimpleMonthAdapter(Context context, - DatePickerController datePickerController) { - mContext = context; - mController = datePickerController; - init(); - setSelectedDay(mController.getSelectedDay()); - } - - private boolean isSelectedDayInMonth(int year, int month) { - return (mSelectedDay.year == year) && (mSelectedDay.month == month); - } - - @Override - public int getCount() { - return ((mController.getMaxYear() - mController.getMinYear()) + 1) - * MONTHS_IN_YEAR; - } - - @Override - public Object getItem(int position) { - return null; - } - - @Override - public long getItemId(int position) { - return position; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - SimpleMonthView v; - HashMap drawingParams = null; - if (convertView != null) { - v = (SimpleMonthView) convertView; - drawingParams = (HashMap) v.getTag(); - } else { - v = new SimpleMonthView(mContext); - v.setLayoutParams(new AbsListView.LayoutParams( - LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); - v.setClickable(true); - v.setOnDayClickListener(this); - } - if (drawingParams == null) { - drawingParams = new HashMap(); - } - drawingParams.clear(); - - final int month = position % MONTHS_IN_YEAR; - final int year = position / MONTHS_IN_YEAR + mController.getMinYear(); - - int selectedDay = -1; - if (isSelectedDayInMonth(year, month)) { - selectedDay = mSelectedDay.day; - } - - v.reuse(); - - drawingParams - .put(SimpleMonthView.VIEW_PARAMS_SELECTED_DAY, selectedDay); - drawingParams.put(SimpleMonthView.VIEW_PARAMS_YEAR, year); - drawingParams.put(SimpleMonthView.VIEW_PARAMS_MONTH, month); - drawingParams.put(SimpleMonthView.VIEW_PARAMS_WEEK_START, - mController.getFirstDayOfWeek()); - v.setMonthParams(drawingParams); - v.invalidate(); - - return v; - } - - protected void init() { - mSelectedDay = new CalendarDay(System.currentTimeMillis()); - } - - @Override - public void onDayClick(SimpleMonthView simpleMonthView, - CalendarDay calendarDay) { - if (calendarDay != null) { - onDayTapped(calendarDay); - } - } - - protected void onDayTapped(CalendarDay calendarDay) { - mController.tryVibrate(); - mController.onDayOfMonthSelected(calendarDay.year, calendarDay.month, - calendarDay.day); - setSelectedDay(calendarDay); - } - - public void setSelectedDay(CalendarDay calendarDay) { - mSelectedDay = calendarDay; - notifyDataSetChanged(); - } - - public static class CalendarDay { - private Calendar calendar; - - int day; - int month; - int year; - - public CalendarDay() { - setTime(System.currentTimeMillis()); - } - - public CalendarDay(int year, int month, int day) { - setDay(year, month, day); - } - - public CalendarDay(long timeInMillis) { - setTime(timeInMillis); - } - - public CalendarDay(Calendar calendar) { - year = calendar.get(Calendar.YEAR); - month = calendar.get(Calendar.MONTH); - day = calendar.get(Calendar.DAY_OF_MONTH); - } - - private void setTime(long timeInMillis) { - if (calendar == null) { - calendar = Calendar.getInstance(); - } - calendar.setTimeInMillis(timeInMillis); - month = this.calendar.get(Calendar.MONTH); - year = this.calendar.get(Calendar.YEAR); - day = this.calendar.get(Calendar.DAY_OF_MONTH); - } - - public void set(CalendarDay calendarDay) { - year = calendarDay.year; - month = calendarDay.month; - day = calendarDay.day; - } - - public void setDay(int year, int month, int day) { - this.year = year; - this.month = month; - this.day = day; - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/fourmob/datetimepicker/date/SimpleMonthView.java b/app/src/main/java/com/fourmob/datetimepicker/date/SimpleMonthView.java deleted file mode 100644 index 02cd291ae..000000000 --- a/app/src/main/java/com/fourmob/datetimepicker/date/SimpleMonthView.java +++ /dev/null @@ -1,359 +0,0 @@ -package com.fourmob.datetimepicker.date; - -import java.security.InvalidParameterException; -import java.text.DateFormatSymbols; -import java.util.Calendar; -import java.util.HashMap; -import java.util.Locale; - -import net.oschina.app.R; -import android.content.Context; -import android.content.res.Resources; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.Paint.Align; -import android.graphics.Paint.Style; -import android.graphics.Typeface; -import android.text.format.DateUtils; -import android.text.format.Time; -import android.view.MotionEvent; -import android.view.View; - -/** - * 摘取自https://github.com/flavienlaurent/datetimepicker - * - * @author kymjs - * - */ -public class SimpleMonthView extends View { - - public static final String VIEW_PARAMS_HEIGHT = "height"; - public static final String VIEW_PARAMS_MONTH = "month"; - public static final String VIEW_PARAMS_YEAR = "year"; - public static final String VIEW_PARAMS_SELECTED_DAY = "selected_day"; - public static final String VIEW_PARAMS_WEEK_START = "week_start"; - public static final String VIEW_PARAMS_NUM_DAYS = "num_days"; - public static final String VIEW_PARAMS_FOCUS_MONTH = "focus_month"; - public static final String VIEW_PARAMS_SHOW_WK_NUM = "show_wk_num"; - - private static final int SELECTED_CIRCLE_ALPHA = 60; - protected static int DEFAULT_HEIGHT = 32; - protected static final int DEFAULT_NUM_ROWS = 6; - protected static int DAY_SELECTED_CIRCLE_SIZE; - protected static int DAY_SEPARATOR_WIDTH = 1; - protected static int MINI_DAY_NUMBER_TEXT_SIZE; - protected static int MIN_HEIGHT = 10; - protected static int MONTH_DAY_LABEL_TEXT_SIZE; - protected static int MONTH_HEADER_SIZE; - protected static int MONTH_LABEL_TEXT_SIZE; - - protected static float mScale = 0.0F; - protected int mPadding = 0; - - private final String mDayOfWeekTypeface; - private final String mMonthTitleTypeface; - - protected Paint mMonthDayLabelPaint; - protected Paint mMonthNumPaint; - protected Paint mMonthTitleBGPaint; - protected Paint mMonthTitlePaint; - protected Paint mSelectedCirclePaint; - protected int mDayTextColor; - protected int mMonthTitleBGColor; - protected int mMonthTitleColor; - protected int mTodayNumberColor; - - private final StringBuilder mStringBuilder; - - protected int mFirstJulianDay = -1; - protected int mFirstMonth = -1; - protected int mLastMonth = -1; - protected boolean mHasToday = false; - protected int mSelectedDay = -1; - protected int mToday = -1; - protected int mWeekStart = 1; - protected int mNumDays = 7; - protected int mNumCells = mNumDays; - protected int mSelectedLeft = -1; - protected int mSelectedRight = -1; - private int mDayOfWeekStart = 0; - protected int mMonth; - protected int mRowHeight = DEFAULT_HEIGHT; - protected int mWidth; - protected int mYear; - - private final Calendar mCalendar; - private final Calendar mDayLabelCalendar; - - private int mNumRows = DEFAULT_NUM_ROWS; - - private final DateFormatSymbols mDateFormatSymbols = new DateFormatSymbols(); - - private OnDayClickListener mOnDayClickListener; - - public SimpleMonthView(Context context) { - super(context); - Resources resources = context.getResources(); - mDayLabelCalendar = Calendar.getInstance(); - mCalendar = Calendar.getInstance(); - - mDayOfWeekTypeface = "sans-serif"; - mMonthTitleTypeface = "sans-serif"; - mDayTextColor = resources.getColor(R.color.date_picker_text_normal); - mTodayNumberColor = resources.getColor(R.color.blue); - mMonthTitleColor = resources.getColor(R.color.white); - mMonthTitleBGColor = resources.getColor(R.color.circle_background); - - mStringBuilder = new StringBuilder(50); - - MINI_DAY_NUMBER_TEXT_SIZE = resources - .getDimensionPixelSize(R.dimen.day_number_size); - MONTH_LABEL_TEXT_SIZE = resources - .getDimensionPixelSize(R.dimen.month_label_size); - MONTH_DAY_LABEL_TEXT_SIZE = resources - .getDimensionPixelSize(R.dimen.month_day_label_text_size); - MONTH_HEADER_SIZE = resources - .getDimensionPixelOffset(R.dimen.month_list_item_header_height); - DAY_SELECTED_CIRCLE_SIZE = resources - .getDimensionPixelSize(R.dimen.day_number_select_circle_radius); - - mRowHeight = ((resources - .getDimensionPixelOffset(R.dimen.date_picker_view_animator_height) - MONTH_HEADER_SIZE) / 6); - - initView(); - } - - private int calculateNumRows() { - int offset = findDayOffset(); - int dividend = (offset + mNumCells) / mNumDays; - int remainder = (offset + mNumCells) % mNumDays; - return (dividend + (remainder > 0 ? 1 : 0)); - } - - private void drawMonthDayLabels(Canvas canvas) { - int y = MONTH_HEADER_SIZE - (MONTH_DAY_LABEL_TEXT_SIZE / 2); - int dayWidthHalf = (mWidth - mPadding * 2) / (mNumDays * 2); - - for (int i = 0; i < mNumDays; i++) { - int calendarDay = (i + mWeekStart) % mNumDays; - int x = (2 * i + 1) * dayWidthHalf + mPadding; - mDayLabelCalendar.set(Calendar.DAY_OF_WEEK, calendarDay); - canvas.drawText( - mDateFormatSymbols.getShortWeekdays()[mDayLabelCalendar - .get(Calendar.DAY_OF_WEEK)].toUpperCase(Locale - .getDefault()), x, y, mMonthDayLabelPaint); - } - } - - private void drawMonthTitle(Canvas canvas) { - int x = (mWidth + 2 * mPadding) / 2; - int y = (MONTH_HEADER_SIZE - MONTH_DAY_LABEL_TEXT_SIZE) / 2 - + (MONTH_LABEL_TEXT_SIZE / 3); - canvas.drawText(getMonthAndYearString(), x, y, mMonthTitlePaint); - } - - private int findDayOffset() { - return (mDayOfWeekStart < mWeekStart ? (mDayOfWeekStart + mNumDays) - : mDayOfWeekStart) - mWeekStart; - } - - private String getMonthAndYearString() { - int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR - | DateUtils.FORMAT_NO_MONTH_DAY; - mStringBuilder.setLength(0); - long millis = mCalendar.getTimeInMillis(); - return DateUtils.formatDateRange(getContext(), millis, millis, flags); - } - - private void onDayClick(SimpleMonthAdapter.CalendarDay calendarDay) { - if (mOnDayClickListener != null) { - mOnDayClickListener.onDayClick(this, calendarDay); - } - } - - private boolean sameDay(int monthDay, Time time) { - return (mYear == time.year) && (mMonth == time.month) - && (monthDay == time.monthDay); - } - - protected void drawMonthNums(Canvas canvas) { - int y = (mRowHeight + MINI_DAY_NUMBER_TEXT_SIZE) / 2 - - DAY_SEPARATOR_WIDTH + MONTH_HEADER_SIZE; - int paddingDay = (mWidth - 2 * mPadding) / (2 * mNumDays); - int dayOffset = findDayOffset(); - int day = 1; - - while (day <= mNumCells) { - int x = paddingDay * (1 + dayOffset * 2) + mPadding; - if (mSelectedDay == day) { - canvas.drawCircle(x, y - MINI_DAY_NUMBER_TEXT_SIZE / 3, - DAY_SELECTED_CIRCLE_SIZE, mSelectedCirclePaint); - } - if (mHasToday && (mToday == day)) { - mMonthNumPaint.setColor(mTodayNumberColor); - } else { - mMonthNumPaint.setColor(mDayTextColor); - } - - canvas.drawText(String.format("%d", day), x, y, mMonthNumPaint); - - dayOffset++; - if (dayOffset == mNumDays) { - dayOffset = 0; - y += mRowHeight; - } - day++; - } - } - - public SimpleMonthAdapter.CalendarDay getDayFromLocation(float x, float y) { - int padding = mPadding; - if ((x < padding) || (x > mWidth - mPadding)) { - return null; - } - - int yDay = (int) (y - MONTH_HEADER_SIZE) / mRowHeight; - int day = 1 - + ((int) ((x - padding) * mNumDays / (mWidth - padding - mPadding)) - findDayOffset()) - + yDay * mNumDays; - - return new SimpleMonthAdapter.CalendarDay(mYear, mMonth, day); - } - - protected void initView() { - mMonthTitlePaint = new Paint(); - mMonthTitlePaint.setFakeBoldText(true); - mMonthTitlePaint.setAntiAlias(true); - mMonthTitlePaint.setTextSize(MONTH_LABEL_TEXT_SIZE); - mMonthTitlePaint.setTypeface(Typeface.create(mMonthTitleTypeface, - Typeface.BOLD)); - mMonthTitlePaint.setColor(mDayTextColor); - mMonthTitlePaint.setTextAlign(Align.CENTER); - mMonthTitlePaint.setStyle(Style.FILL); - - mMonthTitleBGPaint = new Paint(); - mMonthTitleBGPaint.setFakeBoldText(true); - mMonthTitleBGPaint.setAntiAlias(true); - mMonthTitleBGPaint.setColor(mMonthTitleBGColor); - mMonthTitleBGPaint.setTextAlign(Align.CENTER); - mMonthTitleBGPaint.setStyle(Style.FILL); - - mSelectedCirclePaint = new Paint(); - mSelectedCirclePaint.setFakeBoldText(true); - mSelectedCirclePaint.setAntiAlias(true); - mSelectedCirclePaint.setColor(mTodayNumberColor); - mSelectedCirclePaint.setTextAlign(Align.CENTER); - mSelectedCirclePaint.setStyle(Style.FILL); - mSelectedCirclePaint.setAlpha(SELECTED_CIRCLE_ALPHA); - - mMonthDayLabelPaint = new Paint(); - mMonthDayLabelPaint.setAntiAlias(true); - mMonthDayLabelPaint.setTextSize(MONTH_DAY_LABEL_TEXT_SIZE); - mMonthDayLabelPaint.setColor(mDayTextColor); - mMonthDayLabelPaint.setTypeface(Typeface.create(mDayOfWeekTypeface, - Typeface.NORMAL)); - mMonthDayLabelPaint.setStyle(Style.FILL); - mMonthDayLabelPaint.setTextAlign(Align.CENTER); - mMonthDayLabelPaint.setFakeBoldText(true); - - mMonthNumPaint = new Paint(); - mMonthNumPaint.setAntiAlias(true); - mMonthNumPaint.setTextSize(MINI_DAY_NUMBER_TEXT_SIZE); - mMonthNumPaint.setStyle(Style.FILL); - mMonthNumPaint.setTextAlign(Align.CENTER); - mMonthNumPaint.setFakeBoldText(false); - } - - @Override - protected void onDraw(Canvas canvas) { - drawMonthTitle(canvas); - drawMonthDayLabels(canvas); - drawMonthNums(canvas); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - setMeasuredDimension(View.MeasureSpec.getSize(widthMeasureSpec), - mRowHeight * mNumRows + MONTH_HEADER_SIZE); - } - - @Override - protected void onSizeChanged(int w, int h, int oldw, int oldh) { - mWidth = w; - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - if (event.getAction() == MotionEvent.ACTION_UP) { - SimpleMonthAdapter.CalendarDay calendarDay = getDayFromLocation( - event.getX(), event.getY()); - if (calendarDay != null) { - onDayClick(calendarDay); - } - } - return true; - } - - public void reuse() { - mNumRows = DEFAULT_NUM_ROWS; - requestLayout(); - } - - public void setMonthParams(HashMap params) { - if (!params.containsKey(VIEW_PARAMS_MONTH) - && !params.containsKey(VIEW_PARAMS_YEAR)) { - throw new InvalidParameterException( - "You must specify month and year for this view"); - } - setTag(params); - - if (params.containsKey(VIEW_PARAMS_HEIGHT)) { - mRowHeight = params.get(VIEW_PARAMS_HEIGHT); - if (mRowHeight < MIN_HEIGHT) { - mRowHeight = MIN_HEIGHT; - } - } - if (params.containsKey(VIEW_PARAMS_SELECTED_DAY)) { - mSelectedDay = params.get(VIEW_PARAMS_SELECTED_DAY); - } - - mMonth = params.get(VIEW_PARAMS_MONTH); - mYear = params.get(VIEW_PARAMS_YEAR); - - final Time today = new Time(Time.getCurrentTimezone()); - today.setToNow(); - mHasToday = false; - mToday = -1; - - mCalendar.set(Calendar.MONTH, mMonth); - mCalendar.set(Calendar.YEAR, mYear); - mCalendar.set(Calendar.DAY_OF_MONTH, 1); - mDayOfWeekStart = mCalendar.get(Calendar.DAY_OF_WEEK); - - if (params.containsKey(VIEW_PARAMS_WEEK_START)) { - mWeekStart = params.get(VIEW_PARAMS_WEEK_START); - } else { - mWeekStart = mCalendar.getFirstDayOfWeek(); - } - - mNumCells = Utils.getDaysInMonth(mMonth, mYear); - for (int i = 0; i < mNumCells; i++) { - final int day = i + 1; - if (sameDay(day, today)) { - mHasToday = true; - mToday = day; - } - } - - mNumRows = calculateNumRows(); - } - - public void setOnDayClickListener(OnDayClickListener onDayClickListener) { - mOnDayClickListener = onDayClickListener; - } - - public static abstract interface OnDayClickListener { - public abstract void onDayClick(SimpleMonthView simpleMonthView, - SimpleMonthAdapter.CalendarDay calendarDay); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/fourmob/datetimepicker/date/TextViewWithCircularIndicator.java b/app/src/main/java/com/fourmob/datetimepicker/date/TextViewWithCircularIndicator.java deleted file mode 100644 index 5f355d201..000000000 --- a/app/src/main/java/com/fourmob/datetimepicker/date/TextViewWithCircularIndicator.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.fourmob.datetimepicker.date; - -import net.oschina.app.R; -import android.content.Context; -import android.content.res.Resources; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.util.AttributeSet; -import android.widget.TextView; - -/** - * 摘取自https://github.com/flavienlaurent/datetimepicker - * - * @author kymjs - * - */ -public class TextViewWithCircularIndicator extends TextView { - - private final int mCircleColor; - private final Paint mCirclePaint = new Paint(); - private boolean mDrawCircle; - private final String mItemIsSelectedText; - - public TextViewWithCircularIndicator(Context context, - AttributeSet attributeSet) { - super(context, attributeSet); - - Resources res = context.getResources(); - mCircleColor = res.getColor(R.color.blue); - mItemIsSelectedText = "已选择"; - - init(); - } - - private void init() { - mCirclePaint.setFakeBoldText(true); - mCirclePaint.setAntiAlias(true); - mCirclePaint.setColor(mCircleColor); - mCirclePaint.setTextAlign(Paint.Align.CENTER); - mCirclePaint.setStyle(Paint.Style.FILL); - mCirclePaint.setAlpha(60); - } - - public void drawIndicator(boolean drawIndicator) { - mDrawCircle = drawIndicator; - } - - @Override - public CharSequence getContentDescription() { - CharSequence text = getText(); - if (mDrawCircle) { - text = String.format(mItemIsSelectedText, text); - } - return text; - } - - @Override - public void onDraw(Canvas canvas) { - super.onDraw(canvas); - if (mDrawCircle) { - int width = getWidth(); - int heigth = getHeight(); - int radius = Math.min(width, heigth) / 2; - canvas.drawCircle(width / 2, heigth / 2, radius, mCirclePaint); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/fourmob/datetimepicker/date/Utils.java b/app/src/main/java/com/fourmob/datetimepicker/date/Utils.java deleted file mode 100644 index d70d427c9..000000000 --- a/app/src/main/java/com/fourmob/datetimepicker/date/Utils.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.fourmob.datetimepicker.date; - -import java.util.Calendar; - -import android.annotation.SuppressLint; -import android.os.Build; -import android.view.View; -import android.view.accessibility.AccessibilityManager; - -import com.nineoldandroids.animation.Keyframe; -import com.nineoldandroids.animation.ObjectAnimator; -import com.nineoldandroids.animation.PropertyValuesHolder; - -/** - * 摘取自https://github.com/flavienlaurent/datetimepicker - * - * @author kymjs - * - */ -public class Utils { - - public static final int PULSE_ANIMATOR_DURATION = 544; - - public static int getDaysInMonth(int month, int year) { - switch (month) { - case Calendar.JANUARY: - case Calendar.MARCH: - case Calendar.MAY: - case Calendar.JULY: - case Calendar.AUGUST: - case Calendar.OCTOBER: - case Calendar.DECEMBER: - return 31; - case Calendar.APRIL: - case Calendar.JUNE: - case Calendar.SEPTEMBER: - case Calendar.NOVEMBER: - return 30; - case Calendar.FEBRUARY: - return (year % 4 == 0) ? 29 : 28; - default: - throw new IllegalArgumentException("Invalid Month"); - } - } - - public static ObjectAnimator getPulseAnimator(View labelToAnimate, - float decreaseRatio, float increaseRatio) { - Keyframe k0 = Keyframe.ofFloat(0f, 1f); - Keyframe k1 = Keyframe.ofFloat(0.275f, decreaseRatio); - Keyframe k2 = Keyframe.ofFloat(0.69f, increaseRatio); - Keyframe k3 = Keyframe.ofFloat(1f, 1f); - - PropertyValuesHolder scaleX = PropertyValuesHolder.ofKeyframe("scaleX", - k0, k1, k2, k3); - PropertyValuesHolder scaleY = PropertyValuesHolder.ofKeyframe("scaleY", - k0, k1, k2, k3); - ObjectAnimator pulseAnimator = ObjectAnimator.ofPropertyValuesHolder( - labelToAnimate, scaleX, scaleY); - pulseAnimator.setDuration(PULSE_ANIMATOR_DURATION); - - return pulseAnimator; - } - - public static boolean isJellybeanOrLater() { - return Build.VERSION.SDK_INT >= 16; - } - - /** - * Try to speak the specified text, for accessibility. Only available on JB - * or later. - * - * @param text - * Text to announce. - */ - @SuppressLint("NewApi") - public static void tryAccessibilityAnnounce(View view, CharSequence text) { - if (isJellybeanOrLater() && view != null && text != null) { - view.announceForAccessibility(text); - } - } - - public static boolean isTouchExplorationEnabled( - AccessibilityManager accessibilityManager) { - if (Build.VERSION.SDK_INT >= 14) { - return accessibilityManager.isTouchExplorationEnabled(); - } else { - return false; - } - } -} diff --git a/app/src/main/java/com/fourmob/datetimepicker/date/YearPickerView.java b/app/src/main/java/com/fourmob/datetimepicker/date/YearPickerView.java deleted file mode 100644 index a971fe4ec..000000000 --- a/app/src/main/java/com/fourmob/datetimepicker/date/YearPickerView.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.fourmob.datetimepicker.date; - -import java.util.ArrayList; -import java.util.List; - -import net.oschina.app.R; -import android.content.Context; -import android.content.res.Resources; -import android.graphics.drawable.StateListDrawable; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.ListView; -import android.widget.TextView; - -/** - * 摘取自https://github.com/flavienlaurent/datetimepicker - * - * @author kymjs - * - */ -public class YearPickerView extends ListView implements - AdapterView.OnItemClickListener, DatePickerDialog.OnDateChangedListener { - - private YearAdapter mAdapter; - private final int mChildSize; - private final DatePickerController mController; - private TextViewWithCircularIndicator mSelectedView; - private final int mViewSize; - - public YearPickerView(Context context, - DatePickerController datePickerController) { - super(context); - mController = datePickerController; - mController.registerOnDateChangedListener(this); - - setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, - LayoutParams.WRAP_CONTENT)); - - Resources resources = context.getResources(); - mViewSize = resources - .getDimensionPixelOffset(R.dimen.date_picker_view_animator_height); - mChildSize = resources - .getDimensionPixelOffset(R.dimen.year_label_height); - - setVerticalFadingEdgeEnabled(true); - setFadingEdgeLength(mChildSize / 3); - init(context); - setOnItemClickListener(this); - setSelector(new StateListDrawable()); - setDividerHeight(0); - onDateChanged(); - } - - private static int getYearFromTextView(TextView view) { - return Integer.valueOf(view.getText().toString()); - } - - private void init(Context context) { - ArrayList years = new ArrayList(); - for (int year = mController.getMinYear(); year <= mController - .getMaxYear(); year++) { - years.add(String.format("%d", year)); - } - mAdapter = new YearAdapter(context, R.layout.year_label_text_view, - years); - setAdapter(mAdapter); - } - - public int getFirstPositionOffset() { - final View firstChild = getChildAt(0); - if (firstChild == null) { - return 0; - } - return firstChild.getTop(); - } - - @Override - public void onDateChanged() { - mAdapter.notifyDataSetChanged(); - postSetSelectionCentered(mController.getSelectedDay().year - - mController.getMinYear()); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - mController.tryVibrate(); - TextViewWithCircularIndicator clickedView = (TextViewWithCircularIndicator) view; - if (clickedView != null) { - if (clickedView != mSelectedView) { - if (mSelectedView != null) { - mSelectedView.drawIndicator(false); - mSelectedView.requestLayout(); - } - clickedView.drawIndicator(true); - clickedView.requestLayout(); - mSelectedView = clickedView; - } - mController.onYearSelected(getYearFromTextView(clickedView)); - mAdapter.notifyDataSetChanged(); - } - } - - public void postSetSelectionCentered(int position) { - postSetSelectionFromTop(position, mViewSize / 2 - mChildSize / 2); - } - - public void postSetSelectionFromTop(final int position, final int y) { - post(new Runnable() { - @Override - public void run() { - setSelectionFromTop(position, y); - requestLayout(); - } - }); - } - - private class YearAdapter extends ArrayAdapter { - - public YearAdapter(Context context, int resource, List years) { - super(context, resource, years); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - TextViewWithCircularIndicator v = (TextViewWithCircularIndicator) super - .getView(position, convertView, parent); - v.requestLayout(); - int year = getYearFromTextView(v); - boolean selected = mController.getSelectedDay().year == year; - v.drawIndicator(selected); - if (selected) { - mSelectedView = v; - } - return v; - } - } -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/AppConfig.java b/app/src/main/java/net/oschina/app/AppConfig.java deleted file mode 100644 index f6cf28166..000000000 --- a/app/src/main/java/net/oschina/app/AppConfig.java +++ /dev/null @@ -1,146 +0,0 @@ -package net.oschina.app; - -import android.content.Context; -import android.content.SharedPreferences; -import android.os.Environment; -import android.preference.PreferenceManager; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.util.Properties; - -/** - * 应用程序配置类:用于保存用户相关信息及设置 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年9月25日 下午5:29:00 - * - */ -public class AppConfig { - - private final static String APP_CONFIG = "config"; - - public final static String CONF_COOKIE = "cookie"; - - public final static String CONF_APP_UNIQUEID = "APP_UNIQUEID"; - - public static final String KEY_LOAD_IMAGE = "KEY_LOAD_IMAGE"; - public static final String KEY_NOTIFICATION_ACCEPT = "KEY_NOTIFICATION_ACCEPT"; - public static final String KEY_NOTIFICATION_SOUND = "KEY_NOTIFICATION_SOUND"; - public static final String KEY_NOTIFICATION_VIBRATION = "KEY_NOTIFICATION_VIBRATION"; - public static final String KEY_NOTIFICATION_DISABLE_WHEN_EXIT = "KEY_NOTIFICATION_DISABLE_WHEN_EXIT"; - public static final String KEY_CHECK_UPDATE = "KEY_CHECK_UPDATE"; - public static final String KEY_DOUBLE_CLICK_EXIT = "KEY_DOUBLE_CLICK_EXIT"; - - public static final String KEY_TWEET_DRAFT = "KEY_TWEET_DRAFT"; - public static final String KEY_NOTE_DRAFT = "KEY_NOTE_DRAFT"; - - public static final String KEY_FRITST_START = "KEY_FRIST_START"; - - public static final String KEY_NIGHT_MODE_SWITCH="night_mode_switch"; - - public static final String APP_QQ_KEY = "100942993"; - - // 默认存放图片的路径 - public final static String DEFAULT_SAVE_IMAGE_PATH = Environment - .getExternalStorageDirectory() - + File.separator - + "OSChina" - + File.separator + "osc_img" + File.separator; - - // 默认存放文件下载的路径 - public final static String DEFAULT_SAVE_FILE_PATH = Environment - .getExternalStorageDirectory() - + File.separator - + "OSChina" - + File.separator + "download" + File.separator; - - private Context mContext; - private static AppConfig appConfig; - - public static AppConfig getAppConfig(Context context) { - if (appConfig == null) { - appConfig = new AppConfig(); - appConfig.mContext = context; - } - return appConfig; - } - - /** - * 获取Preference设置 - */ - public static SharedPreferences getSharedPreferences(Context context) { - return PreferenceManager.getDefaultSharedPreferences(context); - } - - public String get(String key) { - Properties props = get(); - return (props != null) ? props.getProperty(key) : null; - } - - public Properties get() { - FileInputStream fis = null; - Properties props = new Properties(); - try { - // 读取files目录下的config - // fis = activity.openFileInput(APP_CONFIG); - - // 读取app_config目录下的config - File dirConf = mContext.getDir(APP_CONFIG, Context.MODE_PRIVATE); - fis = new FileInputStream(dirConf.getPath() + File.separator - + APP_CONFIG); - - props.load(fis); - } catch (Exception e) { - } finally { - try { - fis.close(); - } catch (Exception e) { - } - } - return props; - } - - private void setProps(Properties p) { - FileOutputStream fos = null; - try { - // 把config建在files目录下 - // fos = activity.openFileOutput(APP_CONFIG, Context.MODE_PRIVATE); - - // 把config建在(自定义)app_config的目录下 - File dirConf = mContext.getDir(APP_CONFIG, Context.MODE_PRIVATE); - File conf = new File(dirConf, APP_CONFIG); - fos = new FileOutputStream(conf); - - p.store(fos, null); - fos.flush(); - } catch (Exception e) { - e.printStackTrace(); - } finally { - try { - fos.close(); - } catch (Exception e) { - } - } - } - - public void set(Properties ps) { - Properties props = get(); - props.putAll(ps); - setProps(props); - } - - public void set(String key, String value) { - Properties props = get(); - props.setProperty(key, value); - setProps(props); - } - - public void remove(String... key) { - Properties props = get(); - for (String k : key) - props.remove(k); - setProps(props); - } -} diff --git a/app/src/main/java/net/oschina/app/AppContext.java b/app/src/main/java/net/oschina/app/AppContext.java deleted file mode 100644 index f79b7c3a0..000000000 --- a/app/src/main/java/net/oschina/app/AppContext.java +++ /dev/null @@ -1,347 +0,0 @@ -package net.oschina.app; - -import android.content.Intent; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager.NameNotFoundException; - -import com.loopj.android.http.AsyncHttpClient; -import com.loopj.android.http.PersistentCookieStore; - -import net.oschina.app.api.ApiHttpClient; -import net.oschina.app.base.BaseApplication; -import net.oschina.app.bean.Constants; -import net.oschina.app.bean.User; -import net.oschina.app.cache.DataCleanManager; -import net.oschina.app.util.CyptoUtils; -import net.oschina.app.util.MethodsCompat; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TLog; -import net.oschina.app.util.UIHelper; - -import org.kymjs.kjframe.Core; -import org.kymjs.kjframe.http.HttpConfig; -import org.kymjs.kjframe.utils.KJLoger; - -import java.util.Properties; -import java.util.UUID; - -import static net.oschina.app.AppConfig.KEY_FRITST_START; -import static net.oschina.app.AppConfig.KEY_LOAD_IMAGE; -import static net.oschina.app.AppConfig.KEY_NIGHT_MODE_SWITCH; -import static net.oschina.app.AppConfig.KEY_TWEET_DRAFT; - -/** - * 全局应用程序类:用于保存和调用全局应用配置及访问网络数据 - * - * @author 火蚁 (http://my.oschina.net/LittleDY) - * @version 1.0 - * @created 2014-04-22 - */ -public class AppContext extends BaseApplication { - - public static final int PAGE_SIZE = 20;// 默认分页大小 - - private static AppContext instance; - - private int loginUid; - - private boolean login; - - @Override - public void onCreate() { - super.onCreate(); - instance = this; - init(); - initLogin(); - -// Thread.setDefaultUncaughtExceptionHandler(AppException -// .getAppExceptionHandler(this)); - UIHelper.sendBroadcastForNotice(this); - } - - private void init() { - // 初始化网络请求 - AsyncHttpClient client = new AsyncHttpClient(); - PersistentCookieStore myCookieStore = new PersistentCookieStore(this); - client.setCookieStore(myCookieStore); - ApiHttpClient.setHttpClient(client); - ApiHttpClient.setCookie(ApiHttpClient.getCookie(this)); - - // Log控制器 - KJLoger.openDebutLog(true); - TLog.DEBUG = BuildConfig.DEBUG; - - // Bitmap缓存地址 - HttpConfig.CACHEPATH = "OSChina/imagecache"; - } - - private void initLogin() { - User user = getLoginUser(); - if (null != user && user.getId() > 0) { - login = true; - loginUid = user.getId(); - } else { - this.cleanLoginInfo(); - } - } - - /** - * 获得当前app运行的AppContext - * - * @return - */ - public static AppContext getInstance() { - return instance; - } - - public boolean containsProperty(String key) { - Properties props = getProperties(); - return props.containsKey(key); - } - - public void setProperties(Properties ps) { - AppConfig.getAppConfig(this).set(ps); - } - - public Properties getProperties() { - return AppConfig.getAppConfig(this).get(); - } - - public void setProperty(String key, String value) { - AppConfig.getAppConfig(this).set(key, value); - } - - /** - * 获取cookie时传AppConfig.CONF_COOKIE - * - * @param key - * @return - */ - public String getProperty(String key) { - String res = AppConfig.getAppConfig(this).get(key); - return res; - } - - public void removeProperty(String... key) { - AppConfig.getAppConfig(this).remove(key); - } - - /** - * 获取App唯一标识 - * - * @return - */ - public String getAppId() { - String uniqueID = getProperty(AppConfig.CONF_APP_UNIQUEID); - if (StringUtils.isEmpty(uniqueID)) { - uniqueID = UUID.randomUUID().toString(); - setProperty(AppConfig.CONF_APP_UNIQUEID, uniqueID); - } - return uniqueID; - } - - /** - * 获取App安装包信息 - * - * @return - */ - public PackageInfo getPackageInfo() { - PackageInfo info = null; - try { - info = getPackageManager().getPackageInfo(getPackageName(), 0); - } catch (NameNotFoundException e) { - e.printStackTrace(System.err); - } - if (info == null) - info = new PackageInfo(); - return info; - } - - /** - * 保存登录信息 - * - * @param user 用户信息 - */ - @SuppressWarnings("serial") - public void saveUserInfo(final User user) { - this.loginUid = user.getId(); - this.login = true; - setProperties(new Properties() { - { - setProperty("user.uid", String.valueOf(user.getId())); - setProperty("user.name", user.getName()); - setProperty("user.face", user.getPortrait());// 用户头像-文件名 - setProperty("user.account", user.getAccount()); - setProperty("user.pwd", - CyptoUtils.encode("oschinaApp", user.getPwd())); - setProperty("user.location", user.getLocation()); - setProperty("user.followers", - String.valueOf(user.getFollowers())); - setProperty("user.fans", String.valueOf(user.getFans())); - setProperty("user.score", String.valueOf(user.getScore())); - setProperty("user.favoritecount", - String.valueOf(user.getFavoritecount())); - setProperty("user.gender", String.valueOf(user.getGender())); - setProperty("user.isRememberMe", - String.valueOf(user.isRememberMe()));// 是否记住我的信息 - } - }); - } - - /** - * 更新用户信息 - * - * @param user - */ - @SuppressWarnings("serial") - public void updateUserInfo(final User user) { - setProperties(new Properties() { - { - setProperty("user.name", user.getName()); - setProperty("user.face", user.getPortrait());// 用户头像-文件名 - setProperty("user.followers", - String.valueOf(user.getFollowers())); - setProperty("user.fans", String.valueOf(user.getFans())); - setProperty("user.score", String.valueOf(user.getScore())); - setProperty("user.favoritecount", - String.valueOf(user.getFavoritecount())); - setProperty("user.gender", String.valueOf(user.getGender())); - } - }); - } - - /** - * 获得登录用户的信息 - * - * @return - */ - public User getLoginUser() { - User user = new User(); - user.setId(StringUtils.toInt(getProperty("user.uid"), 0)); - user.setName(getProperty("user.name")); - user.setPortrait(getProperty("user.face")); - user.setAccount(getProperty("user.account")); - user.setLocation(getProperty("user.location")); - user.setFollowers(StringUtils.toInt(getProperty("user.followers"), 0)); - user.setFans(StringUtils.toInt(getProperty("user.fans"), 0)); - user.setScore(StringUtils.toInt(getProperty("user.score"), 0)); - user.setFavoritecount(StringUtils.toInt( - getProperty("user.favoritecount"), 0)); - user.setRememberMe(StringUtils.toBool(getProperty("user.isRememberMe"))); - user.setGender(getProperty("user.gender")); - return user; - } - - /** - * 清除登录信息 - */ - public void cleanLoginInfo() { - this.loginUid = 0; - this.login = false; - removeProperty("user.uid", "user.name", "user.face", "user.location", - "user.followers", "user.fans", "user.score", - "user.isRememberMe", "user.gender", "user.favoritecount"); - } - - public int getLoginUid() { - return loginUid; - } - - public boolean isLogin() { - return login; - } - - /** - * 用户注销 - */ - public void Logout() { - cleanLoginInfo(); - ApiHttpClient.cleanCookie(); - this.cleanCookie(); - this.login = false; - this.loginUid = 0; - - Intent intent = new Intent(Constants.INTENT_ACTION_LOGOUT); - sendBroadcast(intent); - } - - /** - * 清除保存的缓存 - */ - public void cleanCookie() { - removeProperty(AppConfig.CONF_COOKIE); - } - - /** - * 清除app缓存 - */ - public void clearAppCache() { - DataCleanManager.cleanDatabases(this); - // 清除数据缓存 - DataCleanManager.cleanInternalCache(this); - // 2.2版本才有将应用缓存转移到sd卡的功能 - if (isMethodsCompat(android.os.Build.VERSION_CODES.FROYO)) { - DataCleanManager.cleanCustomCache(MethodsCompat - .getExternalCacheDir(this)); - } - // 清除编辑器保存的临时内容 - Properties props = getProperties(); - for (Object key : props.keySet()) { - String _key = key.toString(); - if (_key.startsWith("temp")) - removeProperty(_key); - } - Core.getKJBitmap().cleanCache(); - } - - public static void setLoadImage(boolean flag) { - set(KEY_LOAD_IMAGE, flag); - } - - /** - * 判断当前版本是否兼容目标版本的方法 - * - * @param VersionCode - * @return - */ - public static boolean isMethodsCompat(int VersionCode) { - int currentVersion = android.os.Build.VERSION.SDK_INT; - return currentVersion >= VersionCode; - } - - public static String getTweetDraft() { - return getPreferences().getString( - KEY_TWEET_DRAFT + getInstance().getLoginUid(), ""); - } - - public static void setTweetDraft(String draft) { - set(KEY_TWEET_DRAFT + getInstance().getLoginUid(), draft); - } - - public static String getNoteDraft() { - return getPreferences().getString( - AppConfig.KEY_NOTE_DRAFT + getInstance().getLoginUid(), ""); - } - - public static void setNoteDraft(String draft) { - set(AppConfig.KEY_NOTE_DRAFT + getInstance().getLoginUid(), draft); - } - - public static boolean isFristStart() { - return getPreferences().getBoolean(KEY_FRITST_START, true); - } - - public static void setFristStart(boolean frist) { - set(KEY_FRITST_START, frist); - } - - //夜间模式 - public static boolean getNightModeSwitch() { - return getPreferences().getBoolean(KEY_NIGHT_MODE_SWITCH, false); - } - - // 设置夜间模式 - public static void setNightModeSwitch(boolean on) { - set(KEY_NIGHT_MODE_SWITCH, on); - } -} diff --git a/app/src/main/java/net/oschina/app/AppException.java b/app/src/main/java/net/oschina/app/AppException.java deleted file mode 100644 index e4d9caa70..000000000 --- a/app/src/main/java/net/oschina/app/AppException.java +++ /dev/null @@ -1,233 +0,0 @@ -package net.oschina.app; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.lang.Thread.UncaughtExceptionHandler; -import java.net.ConnectException; -import java.net.SocketException; -import java.net.UnknownHostException; - -import net.oschina.app.util.UIHelper; - -import org.kymjs.kjframe.utils.FileUtils; -import org.kymjs.kjframe.utils.SystemTool; - -import android.content.Context; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; -import android.os.Build; -import android.os.Looper; -import cz.msebera.android.httpclient.HttpException; - -/** - * 应用程序异常:用于捕获异常和提示错误信息 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @author kymjs (kymjs123@gmali.com) - * @created 2014年9月25日 下午5:34:05 - * - */ -@SuppressWarnings("serial") -public class AppException extends Exception implements UncaughtExceptionHandler { - - /** 定义异常类型 */ - public final static byte TYPE_NETWORK = 0x01; - public final static byte TYPE_SOCKET = 0x02; - public final static byte TYPE_HTTP_CODE = 0x03; - public final static byte TYPE_HTTP_ERROR = 0x04; - public final static byte TYPE_XML = 0x05; - public final static byte TYPE_IO = 0x06; - public final static byte TYPE_RUN = 0x07; - public final static byte TYPE_JSON = 0x08; - public final static byte TYPE_FILENOTFOUND = 0x09; - - private byte type;// 异常的类型 - // 异常的状态码,这里一般是网络请求的状态码 - private int code; - - /** 系统默认的UncaughtException处理类 */ - private AppContext mContext; - - private AppException(Context context) { - this.mContext = (AppContext) context; - } - - private AppException(byte type, int code, Exception excp) { - super(excp); - this.type = type; - this.code = code; - } - - public int getCode() { - return this.code; - } - - public int getType() { - return this.type; - } - - public static AppException http(int code) { - return new AppException(TYPE_HTTP_CODE, code, null); - } - - public static AppException http(Exception e) { - return new AppException(TYPE_HTTP_ERROR, 0, e); - } - - public static AppException socket(Exception e) { - return new AppException(TYPE_SOCKET, 0, e); - } - - public static AppException file(Exception e) { - return new AppException(TYPE_FILENOTFOUND, 0, e); - } - - // io异常 - public static AppException io(Exception e) { - return io(e, 0); - } - - // io异常 - public static AppException io(Exception e, int code) { - if (e instanceof UnknownHostException || e instanceof ConnectException) { - return new AppException(TYPE_NETWORK, code, e); - } else if (e instanceof IOException) { - return new AppException(TYPE_IO, code, e); - } - return run(e); - } - - public static AppException xml(Exception e) { - return new AppException(TYPE_XML, 0, e); - } - - public static AppException json(Exception e) { - return new AppException(TYPE_JSON, 0, e); - } - - // 网络请求异常 - public static AppException network(Exception e) { - if (e instanceof UnknownHostException || e instanceof ConnectException) { - return new AppException(TYPE_NETWORK, 0, e); - } else if (e instanceof HttpException) { - return http(e); - } else if (e instanceof SocketException) { - return socket(e); - } - return http(e); - } - - public static AppException run(Exception e) { - return new AppException(TYPE_RUN, 0, e); - } - - /** - * 获取APP异常崩溃处理对象 - * - * @param context - * @return - */ - public static AppException getAppExceptionHandler(Context context) { - return new AppException(context.getApplicationContext()); - } - - @Override - public void uncaughtException(Thread thread, Throwable ex) { - if (!handleException(ex)) { - System.exit(0); - } - } - - /** - * 自定义异常处理:收集错误信息&发送错误报告 - * - * @param ex - * @return true:处理了该异常信息;否则返回false - */ - private boolean handleException(final Throwable ex) { - if (ex == null || mContext == null) { - return false; - } - boolean success = true; - try { - success = saveToSDCard(ex); - } catch (Exception e) { - } finally { - if (!success) { - return false; - } else { - final Context context = AppManager.getAppManager() - .currentActivity(); - // 显示异常信息&发送报告 - new Thread() { - @Override - public void run() { - Looper.prepare(); - // 拿到未捕获的异常, - UIHelper.sendAppCrashReport(context); - Looper.loop(); - } - }.start(); - } - } - return true; - } - - private boolean saveToSDCard(Throwable ex) throws Exception { - boolean append = false; - File file = FileUtils.getSaveFile("OSChina", "OSCLog.log"); - if (System.currentTimeMillis() - file.lastModified() > 5000) { - append = true; - } - PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter( - file, append))); - // 导出发生异常的时间 - pw.println(SystemTool.getDataTime("yyyy-MM-dd-HH-mm-ss")); - // 导出手机信息 - dumpPhoneInfo(pw); - pw.println(); - // 导出异常的调用栈信息 - ex.printStackTrace(pw); - pw.println(); - pw.close(); - return append; - } - - private void dumpPhoneInfo(PrintWriter pw) throws NameNotFoundException { - // 应用的版本名称和版本号 - PackageManager pm = mContext.getPackageManager(); - PackageInfo pi = pm.getPackageInfo(mContext.getPackageName(), - PackageManager.GET_ACTIVITIES); - pw.print("App Version: "); - pw.print(pi.versionName); - pw.print('_'); - pw.println(pi.versionCode); - pw.println(); - - // android版本号 - pw.print("OS Version: "); - pw.print(Build.VERSION.RELEASE); - pw.print("_"); - pw.println(Build.VERSION.SDK_INT); - pw.println(); - - // 手机制造商 - pw.print("Vendor: "); - pw.println(Build.MANUFACTURER); - pw.println(); - - // 手机型号 - pw.print("Model: "); - pw.println(Build.MODEL); - pw.println(); - - // cpu架构 - pw.print("CPU ABI: "); - pw.println(Build.CPU_ABI); - pw.println(); - } -} diff --git a/app/src/main/java/net/oschina/app/AppManager.java b/app/src/main/java/net/oschina/app/AppManager.java deleted file mode 100644 index fde4ac328..000000000 --- a/app/src/main/java/net/oschina/app/AppManager.java +++ /dev/null @@ -1,127 +0,0 @@ -package net.oschina.app; - -import java.util.Stack; - -import android.app.Activity; -import android.content.Context; - -/** - * activity堆栈式管理 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月30日 下午6:22:05 - * - */ -public class AppManager { - - private static Stack activityStack; - private static AppManager instance; - - private AppManager() {} - - /** - * 单一实例 - */ - public static AppManager getAppManager() { - if (instance == null) { - instance = new AppManager(); - } - return instance; - } - - /** - * 添加Activity到堆栈 - */ - public void addActivity(Activity activity) { - if (activityStack == null) { - activityStack = new Stack(); - } - activityStack.add(activity); - } - - /** - * 获取当前Activity(堆栈中最后一个压入的) - */ - public Activity currentActivity() { - Activity activity = activityStack.lastElement(); - return activity; - } - - /** - * 结束当前Activity(堆栈中最后一个压入的) - */ - public void finishActivity() { - Activity activity = activityStack.lastElement(); - finishActivity(activity); - } - - /** - * 结束指定的Activity - */ - public void finishActivity(Activity activity) { - if (activity != null && !activity.isFinishing()) { - activityStack.remove(activity); - activity.finish(); - activity = null; - } - } - - /** - * 结束指定类名的Activity - */ - public void finishActivity(Class cls) { - for (Activity activity : activityStack) { - if (activity.getClass().equals(cls)) { - finishActivity(activity); - break; - } - } - } - - /** - * 结束所有Activity - */ - public void finishAllActivity() { - for (int i = 0, size = activityStack.size(); i < size; i++) { - if (null != activityStack.get(i)) { - //finishActivity方法中的activity.isFinishing()方法会导致某些activity无法销毁 - //貌似跳转的时候最后一个activity 是finishing状态,所以没有执行 - //内部实现不是很清楚,但是实测结果如此,使用下面代码则没有问题 - // find by TopJohn - //finishActivity(activityStack.get(i)); - - activityStack.get(i).finish(); - //break; - } - } - activityStack.clear(); - } - - /** - * 获取指定的Activity - * - * @author kymjs - */ - public static Activity getActivity(Class cls) { - if (activityStack != null) - for (Activity activity : activityStack) { - if (activity.getClass().equals(cls)) { - return activity; - } - } - return null; - } - - /** - * 退出应用程序 - */ - public void AppExit(Context context) { - try { - finishAllActivity(); - // 杀死该应用进程 - android.os.Process.killProcess(android.os.Process.myPid()); - System.exit(0); - } catch (Exception e) { - } - } -} diff --git a/app/src/main/java/net/oschina/app/AppStart.java b/app/src/main/java/net/oschina/app/AppStart.java deleted file mode 100644 index 03161d073..000000000 --- a/app/src/main/java/net/oschina/app/AppStart.java +++ /dev/null @@ -1,94 +0,0 @@ -package net.oschina.app; - -import java.io.File; - -import net.oschina.app.ui.MainActivity; -import net.oschina.app.util.TDevice; - -import org.kymjs.kjframe.http.KJAsyncTask; -import org.kymjs.kjframe.utils.FileUtils; -import org.kymjs.kjframe.utils.PreferenceHelper; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; -import android.view.View; -import android.view.animation.AlphaAnimation; -import android.view.animation.Animation; -import android.view.animation.Animation.AnimationListener; - -/** - * 应用启动界面 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年12月22日 上午11:51:56 - * - */ -public class AppStart extends Activity { - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - // 防止第三方跳转时出现双实例 - Activity aty = AppManager.getActivity(MainActivity.class); - if (aty != null && !aty.isFinishing()) { - finish(); - } - // SystemTool.gc(this); //针对性能好的手机使用,加快应用相应速度 - - final View view = View.inflate(this, R.layout.app_start, null); - setContentView(view); - // 渐变展示启动屏 - AlphaAnimation aa = new AlphaAnimation(0.5f, 1.0f); - aa.setDuration(800); - view.startAnimation(aa); - aa.setAnimationListener(new AnimationListener() { - @Override - public void onAnimationEnd(Animation arg0) { - redirectTo(); - } - - @Override - public void onAnimationRepeat(Animation animation) {} - - @Override - public void onAnimationStart(Animation animation) {} - }); - } - - @Override - protected void onResume() { - super.onResume(); - int cacheVersion = PreferenceHelper.readInt(this, "first_install", - "first_install", -1); - int currentVersion = TDevice.getVersionCode(); - if (cacheVersion < currentVersion) { - PreferenceHelper.write(this, "first_install", "first_install", - currentVersion); - cleanImageCache(); - } - } - - private void cleanImageCache() { - final File folder = FileUtils.getSaveFolder("OSChina/imagecache"); - KJAsyncTask.execute(new Runnable() { - @Override - public void run() { - for (File file : folder.listFiles()) { - file.delete(); - } - } - }); - } - - /** - * 跳转到... - */ - private void redirectTo() { - Intent uploadLog = new Intent(this, LogUploadService.class); - startService(uploadLog); - Intent intent = new Intent(this, MainActivity.class); - startActivity(intent); - finish(); - } -} diff --git a/app/src/main/java/net/oschina/app/LogUploadService.java b/app/src/main/java/net/oschina/app/LogUploadService.java deleted file mode 100644 index b0dd7ef6c..000000000 --- a/app/src/main/java/net/oschina/app/LogUploadService.java +++ /dev/null @@ -1,55 +0,0 @@ -package net.oschina.app; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; - -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.util.StringUtils; - -import cz.msebera.android.httpclient.Header; -import org.kymjs.kjframe.utils.FileUtils; - -import android.app.Service; -import android.content.Intent; -import android.os.IBinder; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -public class LogUploadService extends Service { - - @Override - public IBinder onBind(Intent intent) { - return null; - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - final File log = FileUtils.getSaveFile("OSChina", "OSCLog.log"); - String data = null; - try { - FileInputStream inputStream = new FileInputStream(log); - data = StringUtils.toConvertString(inputStream); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - if (!StringUtils.isEmpty(data)) { - OSChinaApi.uploadLog(data, new AsyncHttpResponseHandler() { - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - log.delete(); - LogUploadService.this.stopSelf(); - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - LogUploadService.this.stopSelf(); - } - }); - } else { - LogUploadService.this.stopSelf(); - } - return super.onStartCommand(intent, flags, startId); - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/ActiveAdapter.java b/app/src/main/java/net/oschina/app/adapter/ActiveAdapter.java deleted file mode 100644 index 8b0b3400a..000000000 --- a/app/src/main/java/net/oschina/app/adapter/ActiveAdapter.java +++ /dev/null @@ -1,222 +0,0 @@ -package net.oschina.app.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.text.Html; -import android.text.Spannable; -import android.text.SpannableString; -import android.text.Spanned; -import android.text.TextUtils; -import android.text.style.ImageSpan; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Active; -import net.oschina.app.bean.Active.ObjectReply; -import net.oschina.app.emoji.InputHelper; -import net.oschina.app.ui.ImagePreviewActivity; -import net.oschina.app.util.BitmapHelper; -import net.oschina.app.util.ImageUtils; -import net.oschina.app.util.PlatfromUtil; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.UIHelper; -import net.oschina.app.widget.AvatarView; -import net.oschina.app.widget.MyLinkMovementMethod; -import net.oschina.app.widget.MyURLSpan; -import net.oschina.app.widget.TweetTextView; - -import org.kymjs.kjframe.Core; -import org.kymjs.kjframe.bitmap.BitmapCallBack; -import org.kymjs.kjframe.utils.DensityUtils; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -public class ActiveAdapter extends ListBaseAdapter { - private final static String AT_HOST_PRE = "http://my.oschina.net"; - private final static String MAIN_HOST = "http://www.oschina.net"; - - public ActiveAdapter() { - } - - private Bitmap recordBitmap; - private int rectSize; - - private void initRecordImg(Context cxt) { - recordBitmap = BitmapFactory.decodeResource(cxt.getResources(), - R.drawable.audio3); - recordBitmap = ImageUtils.zoomBitmap(recordBitmap, - DensityUtils.dip2px(cxt, 20f), DensityUtils.dip2px(cxt, 20f)); - } - - private void initImageSize(Context cxt) { - if (cxt != null && rectSize == 0) { - rectSize = (int) cxt.getResources().getDimension(R.dimen.space_100); - } else { - rectSize = 300; - } - } - - @Override - @SuppressLint("InflateParams") - protected View getRealView(int position, View convertView, - final ViewGroup parent) { - ViewHolder vh; - initImageSize(parent.getContext()); - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_active, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - final Active item = (Active) mDatas.get(position); - - vh.name.setText(item.getAuthor()); - - vh.action.setText(UIHelper.parseActiveAction(item.getObjectType(), - item.getObjectCatalog(), item.getObjectTitle())); - - if (TextUtils.isEmpty(item.getMessage())) { - vh.body.setVisibility(View.GONE); - } else { - vh.body.setMovementMethod(MyLinkMovementMethod.a()); - vh.body.setFocusable(false); - vh.body.setDispatchToParent(true); - vh.body.setLongClickable(false); - - Spanned span = Html.fromHtml(modifyPath(item.getMessage())); - - if (!StringUtils.isEmpty(item.getTweetattach())) { - if (recordBitmap == null) { - initRecordImg(parent.getContext()); - } - ImageSpan recordImg = new ImageSpan(parent.getContext(), - recordBitmap); - SpannableString str = new SpannableString("c"); - str.setSpan(recordImg, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - vh.body.setText(str); - span = InputHelper.displayEmoji(parent.getContext() - .getResources(), span); - vh.body.append(span); - } else { - span = InputHelper.displayEmoji(parent.getContext() - .getResources(), span); - vh.body.setText(span); - } - MyURLSpan.parseLinkText(vh.body, span); - } - - ObjectReply reply = item.getObjectReply(); - if (reply != null) { - vh.reply.setMovementMethod(MyLinkMovementMethod.a()); - vh.reply.setFocusable(false); - vh.reply.setDispatchToParent(true); - vh.reply.setLongClickable(false); - Spanned span = UIHelper.parseActiveReply(reply.objectName, - reply.objectBody); - vh.reply.setText(span);// - MyURLSpan.parseLinkText(vh.reply, span); - vh.lyReply.setVisibility(TextView.VISIBLE); - } else { - vh.reply.setText(""); - vh.lyReply.setVisibility(TextView.GONE); - } - - vh.time.setText(StringUtils.friendly_time(item.getPubDate())); - - PlatfromUtil.setPlatFromString(vh.from, item.getAppClient()); - - vh.commentCount.setText(item.getCommentCount() + ""); - - vh.avatar.setUserInfo(item.getAuthorId(), item.getAuthor()); - vh.avatar.setAvatarUrl(item.getPortrait()); - - if (!TextUtils.isEmpty(item.getTweetimage())) { - setTweetImage(parent, vh, item); - } else { - vh.pic.setVisibility(View.GONE); - vh.pic.setImageBitmap(null); - } - - return convertView; - } - - /** - * 动态设置图片显示样式 - */ - private void setTweetImage(final ViewGroup parent, final ViewHolder vh, - final Active item) { - vh.pic.setVisibility(View.VISIBLE); - - new Core.Builder().url(item.getTweetimage()).view(vh.pic).loadBitmapRes(R.drawable - .pic_bg).size(rectSize, rectSize).bitmapCallBack(new BitmapCallBack() { - @Override - public void onSuccess(Bitmap bitmap) { - super.onSuccess(bitmap); - if (bitmap != null) { - bitmap = BitmapHelper.scaleWithXY(bitmap, rectSize / bitmap.getHeight()); - vh.pic.setImageBitmap(bitmap); - } - } - }).doTask(); - - vh.pic.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - ImagePreviewActivity.showImagePrivew(parent.getContext(), 0, - new String[]{getOriginalUrl(item.getTweetimage())}); - } - }); - } - - private String modifyPath(String message) { - message = message.replaceAll("(]+href=\")/([\\S]+)\"", "$1" - + AT_HOST_PRE + "/$2\""); - message = message.replaceAll( - "(]+href=\")http://m.oschina.net([\\S]+)\"", "$1" - + MAIN_HOST + "$2\""); - return message; - } - - private String getOriginalUrl(String url) { - return url.replaceAll("_thumb", ""); - } - - static class ViewHolder { - @InjectView(R.id.tv_name) - TextView name; - @InjectView(R.id.tv_from) - TextView from; - @InjectView(R.id.tv_time) - TextView time; - @InjectView(R.id.tv_action) - TextView action; - @InjectView(R.id.tv_action_name) - TextView actionName; - @InjectView(R.id.tv_comment_count) - TextView commentCount; - @InjectView(R.id.tv_body) - TweetTextView body; - @InjectView(R.id.tv_reply) - TweetTextView reply; - @InjectView(R.id.iv_pic) - ImageView pic; - @InjectView(R.id.ly_reply) - View lyReply; - @InjectView(R.id.iv_avatar) - AvatarView avatar; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/BlogAdapter.java b/app/src/main/java/net/oschina/app/adapter/BlogAdapter.java deleted file mode 100644 index 41d6734ba..000000000 --- a/app/src/main/java/net/oschina/app/adapter/BlogAdapter.java +++ /dev/null @@ -1,90 +0,0 @@ -package net.oschina.app.adapter; - -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Blog; -import net.oschina.app.bean.BlogList; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.ThemeSwitchUtils; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * @author HuangWenwei - * - * @date 2014年9月29日 - */ -public class BlogAdapter extends ListBaseAdapter { - - static class ViewHolder { - - @InjectView(R.id.tv_title) - TextView title; - @InjectView(R.id.tv_description) - TextView description; - @InjectView(R.id.tv_source) - TextView source; - @InjectView(R.id.tv_time) - TextView time; - @InjectView(R.id.tv_comment_count) - TextView comment_count; - @InjectView(R.id.iv_tip) - ImageView tip; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_news, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - Blog blog = mDatas.get(position); - - vh.tip.setVisibility(View.VISIBLE); - if (blog.getDocumenttype() == Blog.DOC_TYPE_ORIGINAL) { - vh.tip.setImageResource(R.drawable.widget_original_icon); - } else { - vh.tip.setImageResource(R.drawable.widget_repaste_icon); - } - - vh.title.setText(blog.getTitle()); - - if (AppContext.isOnReadedPostList(BlogList.PREF_READED_BLOG_LIST, - blog.getId() + "")) { - vh.title.setTextColor(parent.getContext().getResources() - .getColor(ThemeSwitchUtils.getTitleReadedColor())); - } else { - vh.title.setTextColor(parent.getContext().getResources() - .getColor(ThemeSwitchUtils.getTitleUnReadedColor())); - } - - vh.description.setVisibility(View.GONE); - String description = blog.getBody(); - if (null != description && !StringUtils.isEmpty(description)) { - vh.description.setVisibility(View.VISIBLE); - vh.description.setText(description.trim()); - } - - vh.source.setText(blog.getAuthor()); - vh.time.setText(StringUtils.friendly_time(blog.getPubDate())); - vh.comment_count.setText(blog.getCommentCount() + ""); - return convertView; - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/CommentAdapter.java b/app/src/main/java/net/oschina/app/adapter/CommentAdapter.java deleted file mode 100644 index 4fda914f9..000000000 --- a/app/src/main/java/net/oschina/app/adapter/CommentAdapter.java +++ /dev/null @@ -1,160 +0,0 @@ -package net.oschina.app.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.text.Html; -import android.text.Spanned; -import android.view.View; -import android.view.ViewGroup; -import android.widget.LinearLayout; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Comment; -import net.oschina.app.bean.Comment.Refer; -import net.oschina.app.bean.Comment.Reply; -import net.oschina.app.emoji.InputHelper; -import net.oschina.app.util.PlatfromUtil; -import net.oschina.app.util.StringUtils; -import net.oschina.app.widget.AvatarView; -import net.oschina.app.widget.FloorView; -import net.oschina.app.widget.MyLinkMovementMethod; -import net.oschina.app.widget.MyURLSpan; -import net.oschina.app.widget.TweetTextView; - -import java.util.List; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -public class CommentAdapter extends ListBaseAdapter { - - @SuppressLint({ "InflateParams", "CutPasteId" }) - @Override - protected View getRealView(int position, View convertView, - final ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_comment, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - try { - - final Comment item = mDatas.get(position); - - // 若Authorid为0,则显示非会员 - vh.name.setText(item.getAuthor() - + (item.getAuthorId() == 0 ? "(非会员)" : "")); - - vh.content.setMovementMethod(MyLinkMovementMethod.a()); - vh.content.setFocusable(false); - vh.content.setDispatchToParent(true); - vh.content.setLongClickable(false); - Spanned span = Html.fromHtml(TweetTextView.modifyPath(item - .getContent())); - span = InputHelper.displayEmoji(parent.getContext().getResources(), - span.toString()); - vh.content.setText(span); - MyURLSpan.parseLinkText(vh.content, span); - - vh.time.setText(StringUtils.friendly_time(item.getPubDate())); - - PlatfromUtil.setPlatFromString(vh.from, item.getAppClient()); - - // setup refers - setupRefers(parent.getContext(), vh, item.getRefers()); - - // setup replies - setupReplies(parent.getContext(), vh, item.getReplies()); - - vh.avatar.setAvatarUrl(item.getPortrait()); - vh.avatar.setUserInfo(item.getAuthorId(), item.getAuthor()); - } catch (Exception e) { - } - return convertView; - } - - private void setupRefers(Context context, ViewHolder vh, List refers) { - vh.refers.removeAllViews(); - if (refers == null || refers.size() <= 0) { - vh.refers.setVisibility(View.GONE); - } else { - vh.refers.setVisibility(View.VISIBLE); - - vh.refers.setComments(refers); - } - } - - private void setupReplies(Context context, ViewHolder vh, - List replies) { - vh.relies.removeAllViews(); - if (replies == null || replies.size() <= 0) { - vh.relies.setVisibility(View.GONE); - } else { - vh.relies.setVisibility(View.VISIBLE); - - // add count layout - View countView = getLayoutInflater(context).inflate( - R.layout.list_cell_reply_count, null, false); - TextView count = (TextView) countView - .findViewById(R.id.tv_comment_reply_count); - count.setText(context.getResources().getString( - R.string.comment_reply_count, replies.size())); - vh.relies.addView(countView); - - // add reply item - for (Reply reply : replies) { - LinearLayout replyItemView = (LinearLayout) getLayoutInflater( - context).inflate(R.layout.list_cell_reply_name_content, - null, false); - - replyItemView.setOrientation(LinearLayout.HORIZONTAL); - - replyItemView - .setBackgroundResource(R.drawable.comment_background); - - TextView name = (TextView) replyItemView - .findViewById(R.id.tv_reply_name); - name.setText(reply.rauthor + ":"); - - TweetTextView replyContent = (TweetTextView) replyItemView - .findViewById(R.id.tv_reply_content); - replyContent.setMovementMethod(MyLinkMovementMethod.a()); - replyContent.setFocusable(false); - replyContent.setDispatchToParent(true); - replyContent.setLongClickable(false); - Spanned rcontent = Html.fromHtml(reply.rcontent); - replyContent.setText(rcontent); - MyURLSpan.parseLinkText(replyContent, rcontent); - - vh.relies.addView(replyItemView); - } - } - } - - static class ViewHolder { - @InjectView(R.id.iv_avatar) - AvatarView avatar; - @InjectView(R.id.tv_name) - TextView name; - @InjectView(R.id.tv_time) - TextView time; - @InjectView(R.id.tv_from) - TextView from; - @InjectView(R.id.tv_content) - TweetTextView content; - @InjectView(R.id.ly_relies) - LinearLayout relies; - @InjectView(R.id.ly_refers) - FloorView refers; - - ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/EventAdapter.java b/app/src/main/java/net/oschina/app/adapter/EventAdapter.java deleted file mode 100644 index eb42ca3a4..000000000 --- a/app/src/main/java/net/oschina/app/adapter/EventAdapter.java +++ /dev/null @@ -1,102 +0,0 @@ -package net.oschina.app.adapter; - -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Event; -import net.oschina.app.bean.EventList; - -import org.kymjs.kjframe.Core; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 活动列表适配器 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月9日 下午6:22:54 - */ -public class EventAdapter extends ListBaseAdapter { - - private int eventType = EventList.EVENT_LIST_TYPE_NEW_EVENT; - - static class ViewHolder { - - @InjectView(R.id.iv_event_status) - ImageView status; - @InjectView(R.id.iv_event_img) - ImageView img; - @InjectView(R.id.tv_event_title) - TextView title; - @InjectView(R.id.tv_event_time) - TextView time; - @InjectView(R.id.tv_event_spot) - TextView spot; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } - - public void setEventType(int eventType) { - this.eventType = eventType; - } - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_event, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - Event item = mDatas.get(position); - - setEventStatus(item, vh); - - new Core.Builder().view(vh.img).url(item.getCover()).doTask(); - vh.title.setText(item.getTitle()); - vh.time.setText(item.getStartTime()); - vh.spot.setText(item.getSpot()); - - return convertView; - } - - private void setEventStatus(Event event, ViewHolder vh) { - - switch (this.eventType) { - case EventList.EVENT_LIST_TYPE_NEW_EVENT: - if (event.getApplyStatus() == Event.APPLYSTATUS_CHECKING - || event.getApplyStatus() == Event.APPLYSTATUS_CHECKED) { - vh.status - .setImageResource(R.drawable.icon_event_status_checked); - vh.status.setVisibility(View.VISIBLE); - } else { - vh.status.setVisibility(View.GONE); - } - break; - case EventList.EVENT_LIST_TYPE_MY_EVENT: - if (event.getApplyStatus() == Event.APPLYSTATUS_ATTEND) { - vh.status.setImageResource(R.drawable.icon_event_status_attend); - } else if (event.getStatus() == Event.EVNET_STATUS_APPLYING) { - vh.status - .setImageResource(R.drawable.icon_event_status_checked); - } else { - vh.status.setImageResource(R.drawable.icon_event_status_over); - } - vh.status.setVisibility(View.VISIBLE); - break; - default: - break; - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/EventApplyAdapter.java b/app/src/main/java/net/oschina/app/adapter/EventApplyAdapter.java deleted file mode 100644 index 2b8f0b371..000000000 --- a/app/src/main/java/net/oschina/app/adapter/EventApplyAdapter.java +++ /dev/null @@ -1,65 +0,0 @@ -package net.oschina.app.adapter; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Apply; -import net.oschina.app.widget.AvatarView; -import android.annotation.SuppressLint; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 活动参会人员适配器 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年12月12日 下午8:10:43 - * - */ -public class EventApplyAdapter extends ListBaseAdapter { - - @SuppressLint("InflateParams") - @Override - protected View getRealView(int position, View convertView, - final ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_friend, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - final Apply item = (Apply) mDatas.get(position); - - vh.name.setText(item.getName()); - vh.avatar.setUserInfo(item.getId(), item.getName()); - vh.avatar.setAvatarUrl(item.getPortrait()); - vh.from.setVisibility(View.GONE); - vh.desc.setText(item.getCompany() + " " + item.getJob()); - - return convertView; - } - - static class ViewHolder { - - @InjectView(R.id.tv_name) - TextView name; - @InjectView(R.id.tv_desc) - TextView desc; - @InjectView(R.id.tv_from) TextView from; - @InjectView(R.id.iv_gender) - ImageView gender; - @InjectView(R.id.iv_avatar) - AvatarView avatar; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/FindUserAdapter.java b/app/src/main/java/net/oschina/app/adapter/FindUserAdapter.java deleted file mode 100644 index c6a538dc8..000000000 --- a/app/src/main/java/net/oschina/app/adapter/FindUserAdapter.java +++ /dev/null @@ -1,74 +0,0 @@ -package net.oschina.app.adapter; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.User; -import net.oschina.app.widget.AvatarView; -import android.annotation.SuppressLint; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 好友列表适配器 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年11月6日 上午11:22:27 - * - */ -public class FindUserAdapter extends ListBaseAdapter { - - @SuppressLint("InflateParams") - @Override - protected View getRealView(int position, View convertView, - final ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_friend, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - final User item = (User) mDatas.get(position); - - vh.name.setText(item.getName()); - - vh.from.setText(item.getFrom()); - vh.desc.setVisibility(View.GONE); - int genderIcon = R.drawable.userinfo_icon_male; - if ("女".equals(item.getGender())) { - genderIcon = R.drawable.userinfo_icon_female; - } - - vh.gender.setImageResource(genderIcon); - - vh.avatar.setAvatarUrl(item.getPortrait()); - vh.avatar.setUserInfo(item.getId(), item.getName()); - - return convertView; - } - - static class ViewHolder { - - @InjectView(R.id.tv_name) - TextView name; - @InjectView(R.id.tv_from) - TextView from; - @InjectView(R.id.tv_desc) - TextView desc; - @InjectView(R.id.iv_gender) - ImageView gender; - @InjectView(R.id.iv_avatar) - AvatarView avatar; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/FriendAdapter.java b/app/src/main/java/net/oschina/app/adapter/FriendAdapter.java deleted file mode 100644 index 299259391..000000000 --- a/app/src/main/java/net/oschina/app/adapter/FriendAdapter.java +++ /dev/null @@ -1,82 +0,0 @@ -package net.oschina.app.adapter; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Friend; -import net.oschina.app.util.StringUtils; -import net.oschina.app.widget.AvatarView; -import android.annotation.SuppressLint; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 好友列表适配器 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年11月6日 上午11:22:27 - * - */ -public class FriendAdapter extends ListBaseAdapter { - - @SuppressLint("InflateParams") - @Override - protected View getRealView(int position, View convertView, - final ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_friend, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - final Friend item = mDatas.get(position); - - vh.name.setText(item.getName()); - String from = item.getFrom(); - if (from != null || !StringUtils.isEmpty(from)) { - vh.from.setText(from); - } else { - vh.from.setVisibility(View.GONE); - } - String desc = item.getExpertise(); - if (desc != null || !StringUtils.isEmpty(from) || !"<无>".equals(desc)) { - vh.desc.setText(item.getExpertise()); - } else { - vh.desc.setVisibility(View.GONE); - } - - vh.gender - .setImageResource(item.getGender() == 1 ? R.drawable.userinfo_icon_male - : R.drawable.userinfo_icon_female); - - vh.avatar.setAvatarUrl(item.getPortrait()); - vh.avatar.setUserInfo(item.getUserid(), item.getName()); - - return convertView; - } - - static class ViewHolder { - - @InjectView(R.id.tv_name) - TextView name; - @InjectView(R.id.tv_from) - TextView from; - @InjectView(R.id.tv_desc) - TextView desc; - @InjectView(R.id.iv_gender) - ImageView gender; - @InjectView(R.id.iv_avatar) - AvatarView avatar; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/MessageAdapter.java b/app/src/main/java/net/oschina/app/adapter/MessageAdapter.java deleted file mode 100644 index 4a0c74d2f..000000000 --- a/app/src/main/java/net/oschina/app/adapter/MessageAdapter.java +++ /dev/null @@ -1,85 +0,0 @@ -package net.oschina.app.adapter; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Messages; -import net.oschina.app.util.StringUtils; -import net.oschina.app.widget.AvatarView; -import net.oschina.app.widget.MyLinkMovementMethod; -import net.oschina.app.widget.MyURLSpan; -import net.oschina.app.widget.TweetTextView; -import android.text.Html; -import android.text.Spanned; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -public class MessageAdapter extends ListBaseAdapter { - - @Override - protected boolean loadMoreHasBg() { - return false; - } - - @Override - protected View getRealView(int position, View convertView, - final ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_message, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - final Messages item = (Messages) mDatas.get(position); - - if (AppContext.getInstance().getLoginUid() == item.getSenderId()) { - vh.sender.setVisibility(View.VISIBLE); - } else { - vh.sender.setVisibility(View.GONE); - } - - vh.name.setText(item.getFriendName()); - - vh.content.setMovementMethod(MyLinkMovementMethod.a()); - vh.content.setFocusable(false); - vh.content.setDispatchToParent(true); - vh.content.setLongClickable(false); - Spanned span = Html.fromHtml(item.getContent()); - vh.content.setText(span); - MyURLSpan.parseLinkText(vh.content, span); - - vh.time.setText(StringUtils.friendly_time(item.getPubDate())); - vh.count.setText(parent.getResources().getString( - R.string.message_count, item.getMessageCount())); - - vh.avatar.setAvatarUrl(item.getPortrait()); - vh.avatar.setUserInfo(item.getSenderId(), item.getSender()); - return convertView; - } - - static class ViewHolder { - @InjectView(R.id.iv_avatar) - AvatarView avatar; - @InjectView(R.id.tv_name) - TextView name; - @InjectView(R.id.tv_sender) - TextView sender; - @InjectView(R.id.tv_time) - TextView time; - @InjectView(R.id.tv_count) - TextView count; - @InjectView(R.id.tv_content) - TweetTextView content; - - ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/MessageDetailAdapter.java b/app/src/main/java/net/oschina/app/adapter/MessageDetailAdapter.java deleted file mode 100644 index f93e83a27..000000000 --- a/app/src/main/java/net/oschina/app/adapter/MessageDetailAdapter.java +++ /dev/null @@ -1,253 +0,0 @@ -package net.oschina.app.adapter; - -import android.text.Html; -import android.text.Spanned; -import android.view.View; -import android.view.ViewGroup; -import android.widget.IconTextView; -import android.widget.ImageView; -import android.widget.ProgressBar; -import android.widget.RelativeLayout; -import android.widget.TextView; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.api.ApiHttpClient; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.MessageDetail; -import net.oschina.app.emoji.InputHelper; -import net.oschina.app.util.ChatImageDisplayer; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.UIHelper; -import net.oschina.app.widget.AvatarView; -import net.oschina.app.widget.MyLinkMovementMethod; -import net.oschina.app.widget.MyURLSpan; -import net.oschina.app.widget.TweetTextView; - -import org.kymjs.kjframe.Core; -import org.kymjs.kjframe.KJBitmap; -import org.kymjs.kjframe.bitmap.BitmapConfig; -import org.kymjs.kjframe.http.HttpConfig; - -import java.lang.reflect.Field; - -import butterknife.ButterKnife; -import butterknife.InjectView; -import butterknife.OnClick; - -/** - * 铂金小鸟 2015-09-16 修改(聊天界面改进) - */ -public class MessageDetailAdapter extends ListBaseAdapter { - - KJBitmap mKjBitmap = Core.getKJBitmap(); - - private OnRetrySendMessageListener mOnRetrySendMessageListener; - - @Override - protected boolean loadMoreHasBg() { - return false; - } - - public MessageDetailAdapter() { - try { - //初始化display,设置图片的最大宽高和最小宽高 - ChatImageDisplayer displayer = new ChatImageDisplayer(new BitmapConfig()); - int maxWidth = TDevice.getDisplayMetrics().widthPixels / 2; - int maxHeight = maxWidth; - int minWidth = maxWidth / 2; - int minHeight = minWidth; - displayer.setImageSize(maxWidth, maxHeight, minWidth, minHeight); - //kjBitmap 不能设置自定义的displayer,这里通过反射设置自定义的displayer - Class classType = mKjBitmap.getClass(); - Field field = classType.getDeclaredField("displayer"); - field.setAccessible(true); - field.set(mKjBitmap, displayer); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - protected View getRealView(int position, View convertView, - final ViewGroup parent) { - final MessageDetail item = mDatas.get(mDatas.size() - position - 1); - - int itemType = 0; - if (item.getAuthorId() == AppContext.getInstance().getLoginUid()) { - itemType = 1; - } - boolean needCreateView = false; - ViewHolder vh = null; - if (convertView == null) { - needCreateView = true; - } else { - vh = (ViewHolder) convertView.getTag(); - } - - if (vh == null || vh.type != itemType) { - needCreateView = true; - } - - if (needCreateView) { - convertView = getLayoutInflater(parent.getContext()).inflate( - itemType == 0 ? R.layout.list_cell_chat_from : R.layout.list_cell_chat_to, - null); - vh = new ViewHolder(convertView); - vh.type = itemType; - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - vh.avatar.setAvatarUrl(item.getPortrait()); - vh.avatar.setUserInfo(item.getAuthorId(), item.getAuthor()); - - //判断是不是图片 - if (item.getBtype() == 3) { - showImage(vh, item); - } else /*if(item.getBtype()==1)*/ { - //文本消息 - showText(vh, item); - } - showStatus(vh, item); - - //检查是否需要显示时间 - if (item.isShowDate()) { - vh.time.setText(StringUtils.friendly_time3(item.getPubDate())); - vh.time.setVisibility(View.VISIBLE); - } else { - vh.time.setVisibility(View.GONE); - } - - return convertView; - } - - /** - * 显示文字消息 - * - * @param vh - * @param msg - */ - private void showText(ViewHolder vh, MessageDetail msg) { - vh.image.setVisibility(View.GONE); - vh.content.setVisibility(View.VISIBLE); - Spanned span = Html.fromHtml(msg.getContent()); - span = InputHelper.displayEmoji(vh.content.getResources(), span); - vh.content.setText(span); - MyURLSpan.parseLinkText(vh.content, span); - } - - /** - * 显示图片 - * - * @param vh - * @param msg - */ - private void showImage(ViewHolder vh, MessageDetail msg) { - vh.content.setVisibility(View.GONE); - vh.image.setVisibility(View.VISIBLE); - //加载图片 - vh.image.setImageResource(R.drawable.load_img_loading); - HttpConfig.sCookie = ApiHttpClient.getCookie(AppContext.getInstance()); - mKjBitmap.display(vh.image, msg.getContent(), R.drawable.load_img_error, 0, 0, - null); - } - - /** - * 显示消息状态 - * - * @param vh - * @param msg - */ - private void showStatus(ViewHolder vh, MessageDetail msg) { - //如果msg正在发送,则显示progressBar. 发送错误显示错误图标 - if (msg.getStatus() != null && msg.getStatus() != MessageDetail.MessageStatus.NORMAL) { - vh.msgStatusPanel.setVisibility(View.VISIBLE); - if (msg.getStatus() == MessageDetail.MessageStatus.SENDING) { - //sending 正在发送 - vh.progressBar.setVisibility(View.VISIBLE); - vh.error.setVisibility(View.GONE); - vh.error.setTag(null); - } else { - //error 发送出错 - vh.progressBar.setVisibility(View.GONE); - vh.error.setVisibility(View.VISIBLE); - //设置tag为msg id,以便点击重试发送 - vh.error.setTag(msg.getId()); - - } - } else { - //注意,此处隐藏要用INVISIBLE,不能使用GONE - vh.msgStatusPanel.setVisibility(View.INVISIBLE); - vh.error.setTag(null); - } - } - - public OnRetrySendMessageListener getOnRetrySendMessageListener() { - return mOnRetrySendMessageListener; - } - - public void setOnRetrySendMessageListener(OnRetrySendMessageListener - onRetrySendMessageListener) { - this.mOnRetrySendMessageListener = onRetrySendMessageListener; - } - - @Override - protected boolean hasFooterView() { - return false; - } - - class ViewHolder { - int type; - @InjectView(R.id.iv_avatar) - AvatarView avatar; - @InjectView(R.id.tv_time) - TextView time; - @InjectView(R.id.tv_content) - TweetTextView content; - @InjectView(R.id.iv_img) - ImageView image; - @InjectView(R.id.progress) - ProgressBar progressBar; - @InjectView(R.id.rl_msg_status_panel) - RelativeLayout msgStatusPanel; - @InjectView(R.id.itv_error) - IconTextView error; - - ViewHolder(View view) { - ButterKnife.inject(this, view); - - content.setMovementMethod(MyLinkMovementMethod.a()); - content.setFocusable(false); - content.setDispatchToParent(true); - content.setLongClickable(false); - } - - @OnClick(R.id.iv_img) - void viewImage(View v) { - if (v.getTag() != null) { - String url = (String) v.getTag(); - UIHelper.showImagePreview(v.getContext(), new String[]{url}); - } - } - - /** - * 重试发送 - * - * @param v - */ - @OnClick(R.id.itv_error) - void retry(View v) { - if (v.getTag() != null && mOnRetrySendMessageListener != null) { - mOnRetrySendMessageListener.onRetrySendMessage((int) v.getTag()); - } - } - } - - - public interface OnRetrySendMessageListener { - void onRetrySendMessage(int msgId); - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/NewsAdapter.java b/app/src/main/java/net/oschina/app/adapter/NewsAdapter.java deleted file mode 100644 index 19382b7e1..000000000 --- a/app/src/main/java/net/oschina/app/adapter/NewsAdapter.java +++ /dev/null @@ -1,84 +0,0 @@ -package net.oschina.app.adapter; - -import android.annotation.SuppressLint; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.News; -import net.oschina.app.bean.NewsList; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.ThemeSwitchUtils; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -public class NewsAdapter extends ListBaseAdapter { - - @SuppressLint("InflateParams") - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_news, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - News news = mDatas.get(position); - vh.title.setText(news.getTitle()); - - if (AppContext.isOnReadedPostList(NewsList.PREF_READED_NEWS_LIST, - news.getId() + "")) { - vh.title.setTextColor(parent.getContext().getResources() - .getColor(ThemeSwitchUtils.getTitleReadedColor())); - } else { - vh.title.setTextColor(parent.getContext().getResources() - .getColor(ThemeSwitchUtils.getTitleUnReadedColor())); - } - - String description = news.getBody(); - vh.description.setVisibility(View.GONE); - if (description != null && !StringUtils.isEmpty(description)) { - vh.description.setVisibility(View.VISIBLE); - vh.description.setText(description.trim()); - } - - vh.source.setText(news.getAuthor()); - if (StringUtils.isToday(news.getPubDate())) { - vh.tip.setVisibility(View.VISIBLE); - } else { - vh.tip.setVisibility(View.GONE); - } - vh.time.setText(StringUtils.friendly_time(news.getPubDate())); - vh.comment_count.setText(news.getCommentCount() + ""); - - return convertView; - } - - static class ViewHolder { - @InjectView(R.id.tv_title) - TextView title; - @InjectView(R.id.tv_description) - TextView description; - @InjectView(R.id.tv_source) - TextView source; - @InjectView(R.id.tv_time) - TextView time; - @InjectView(R.id.tv_comment_count) - TextView comment_count; - @InjectView(R.id.iv_tip) - ImageView tip; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/PostAdapter.java b/app/src/main/java/net/oschina/app/adapter/PostAdapter.java deleted file mode 100644 index f51d60b36..000000000 --- a/app/src/main/java/net/oschina/app/adapter/PostAdapter.java +++ /dev/null @@ -1,89 +0,0 @@ -package net.oschina.app.adapter; - -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Post; -import net.oschina.app.bean.PostList; -import net.oschina.app.util.HTMLUtil; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.ThemeSwitchUtils; -import net.oschina.app.widget.AvatarView; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * post(讨论区帖子)适配器 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月9日 下午6:22:54 - */ -public class PostAdapter extends ListBaseAdapter { - - static class ViewHolder { - - @InjectView(R.id.tv_title) - TextView title; - @InjectView(R.id.tv_description) - TextView description; - @InjectView(R.id.tv_author) - TextView author; - @InjectView(R.id.tv_date) - TextView time; - @InjectView(R.id.tv_count) - TextView comment_count; - - @InjectView(R.id.iv_face) - public AvatarView face; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_post, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - Post post = (Post) mDatas.get(position); - - vh.face.setUserInfo(post.getAuthorId(), post.getAuthor()); - vh.face.setAvatarUrl(post.getPortrait()); - vh.title.setText(post.getTitle()); - String body = post.getBody(); - vh.description.setVisibility(View.GONE); - if (null != body || !StringUtils.isEmpty(body)) { - vh.description.setVisibility(View.VISIBLE); - vh.description.setText(HTMLUtil.replaceTag(post.getBody()).trim()); - } - - if (AppContext.isOnReadedPostList(PostList.PREF_READED_POST_LIST, - post.getId() + "")) { - vh.title.setTextColor(parent.getContext().getResources() - .getColor(ThemeSwitchUtils.getTitleReadedColor())); - } else { - vh.title.setTextColor(parent.getContext().getResources() - .getColor(ThemeSwitchUtils.getTitleUnReadedColor())); - } - - vh.author.setText(post.getAuthor()); - vh.time.setText(StringUtils.friendly_time(post.getPubDate())); - vh.comment_count.setText(post.getAnswerCount() + "回 / " - + post.getViewCount() + "阅"); - - return convertView; - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/RecycleBin.java b/app/src/main/java/net/oschina/app/adapter/RecycleBin.java deleted file mode 100644 index e46514b86..000000000 --- a/app/src/main/java/net/oschina/app/adapter/RecycleBin.java +++ /dev/null @@ -1,155 +0,0 @@ -package net.oschina.app.adapter; - -import android.annotation.SuppressLint; -import android.os.Build; -import android.util.SparseArray; -import android.view.View; - -/** - * The RecycleBin facilitates reuse of views across layouts. The RecycleBin has two levels of - * storage: ActiveViews and ScrapViews. ActiveViews are those views which were onscreen at the - * start of a layout. By construction, they are displaying current information. At the end of - * layout, all views in ActiveViews are demoted to ScrapViews. ScrapViews are old views that - * could potentially be used by the adapter to avoid allocating views unnecessarily. - *

- * This class was taken from Android's implementation of {@link android.widget.AbsListView} which - * is copyrighted 2006 The Android Open Source Project. - */ -public class RecycleBin { - /** - * Views that were on screen at the start of layout. This array is populated at the start of - * layout, and at the end of layout all view in activeViews are moved to scrapViews. - * Views in activeViews represent a contiguous range of Views, with position of the first - * view store in mFirstActivePosition. - */ - private View[] activeViews = new View[0]; - private int[] activeViewTypes = new int[0]; - - /** Unsorted views that can be used by the adapter as a convert view. */ - private SparseArray[] scrapViews; - - private int viewTypeCount; - - private SparseArray currentScrapViews; - - public void setViewTypeCount(int viewTypeCount) { - if (viewTypeCount < 1) { - throw new IllegalArgumentException("Can't have a viewTypeCount < 1"); - } - //noinspection unchecked - SparseArray[] scrapViews = new SparseArray[viewTypeCount]; - for (int i = 0; i < viewTypeCount; i++) { - scrapViews[i] = new SparseArray(); - } - this.viewTypeCount = viewTypeCount; - currentScrapViews = scrapViews[0]; - this.scrapViews = scrapViews; - } - - protected boolean shouldRecycleViewType(int viewType) { - return viewType >= 0; - } - - /** @return A view from the ScrapViews collection. These are unordered. */ - View getScrapView(int position, int viewType) { - if (viewTypeCount == 1) { - return retrieveFromScrap(currentScrapViews, position); - } else if (viewType >= 0 && viewType < scrapViews.length) { - return retrieveFromScrap(scrapViews[viewType], position); - } - return null; - } - - /** - * Put a view into the ScrapViews list. These views are unordered. - * - * @param scrap The view to add - */ - @SuppressLint("NewApi") -void addScrapView(View scrap, int position, int viewType) { - if (viewTypeCount == 1) { - currentScrapViews.put(position, scrap); - } else { - scrapViews[viewType].put(position, scrap); - } - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { - scrap.setAccessibilityDelegate(null); - } - } - - /** Move all views remaining in activeViews to scrapViews. */ - @SuppressLint("NewApi") -void scrapActiveViews() { - final View[] activeViews = this.activeViews; - final int[] activeViewTypes = this.activeViewTypes; - final boolean multipleScraps = viewTypeCount > 1; - - SparseArray scrapViews = currentScrapViews; - final int count = activeViews.length; - for (int i = count - 1; i >= 0; i--) { - final View victim = activeViews[i]; - if (victim != null) { - int whichScrap = activeViewTypes[i]; - - activeViews[i] = null; - activeViewTypes[i] = -1; - - if (!shouldRecycleViewType(whichScrap)) { - continue; - } - - if (multipleScraps) { - scrapViews = this.scrapViews[whichScrap]; - } - scrapViews.put(i, victim); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) { - victim.setAccessibilityDelegate(null); - } - } - } - - pruneScrapViews(); - } - - /** - * Makes sure that the size of scrapViews does not exceed the size of activeViews. - * (This can happen if an adapter does not recycle its views). - */ - private void pruneScrapViews() { - final int maxViews = activeViews.length; - final int viewTypeCount = this.viewTypeCount; - final SparseArray[] scrapViews = this.scrapViews; - for (int i = 0; i < viewTypeCount; ++i) { - final SparseArray scrapPile = scrapViews[i]; - int size = scrapPile.size(); - final int extras = size - maxViews; - size--; - for (int j = 0; j < extras; j++) { - scrapPile.remove(scrapPile.keyAt(size--)); - } - } - } - - static View retrieveFromScrap(SparseArray scrapViews, int position) { - int size = scrapViews.size(); - if (size > 0) { - // See if we still have a view for this position. - for (int i = 0; i < size; i++) { - int fromPosition = scrapViews.keyAt(i); - View view = scrapViews.get(fromPosition); - if (fromPosition == position) { - scrapViews.remove(fromPosition); - return view; - } - } - int index = size - 1; - View r = scrapViews.valueAt(index); - scrapViews.remove(scrapViews.keyAt(index)); - return r; - } else { - return null; - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/RecyclingPagerAdapter.java b/app/src/main/java/net/oschina/app/adapter/RecyclingPagerAdapter.java deleted file mode 100644 index 84e7d8859..000000000 --- a/app/src/main/java/net/oschina/app/adapter/RecyclingPagerAdapter.java +++ /dev/null @@ -1,122 +0,0 @@ -package net.oschina.app.adapter; - -import android.support.v4.view.PagerAdapter; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AdapterView; - -/** - * A {@link PagerAdapter} which behaves like an {@link android.widget.Adapter} - * with view types and view recycling. - */ -public abstract class RecyclingPagerAdapter extends PagerAdapter { - static final int IGNORE_ITEM_VIEW_TYPE = AdapterView.ITEM_VIEW_TYPE_IGNORE; - - private final RecycleBin recycleBin; - - public RecyclingPagerAdapter() { - this(new RecycleBin()); - } - - RecyclingPagerAdapter(RecycleBin recycleBin) { - this.recycleBin = recycleBin; - recycleBin.setViewTypeCount(getViewTypeCount()); - } - - @Override - public void notifyDataSetChanged() { - recycleBin.scrapActiveViews(); - super.notifyDataSetChanged(); - } - - @Override - public final Object instantiateItem(ViewGroup container, int position) { - int viewType = getItemViewType(position); - View view = null; - if (viewType != IGNORE_ITEM_VIEW_TYPE) { - view = recycleBin.getScrapView(position, viewType); - } - view = getView(position, view, container); - container.addView(view); - return view; - } - - @Override - public final void destroyItem(ViewGroup container, int position, - Object object) { - View view = (View) object; - container.removeView(view); - int viewType = getItemViewType(position); - if (viewType != IGNORE_ITEM_VIEW_TYPE) { - recycleBin.addScrapView(view, position, viewType); - } - } - - @Override - public final boolean isViewFromObject(View view, Object object) { - return view == object; - } - - /** - *

- * Returns the number of types of Views that will be created by - * {@link #getView}. Each type represents a set of views that can be - * converted in {@link #getView}. If the adapter always returns the same - * type of View for all items, this method should return 1. - *

- *

- * This method will only be called when when the adapter is set on the the - * {@link AdapterView}. - *

- * - * @return The number of types of Views that will be created by this adapter - */ - public int getViewTypeCount() { - return 1; - } - - /** - * Get the type of View that will be created by {@link #getView} for the - * specified item. - * - * @param position - * The position of the item within the adapter's data set whose - * view type we want. - * @return An integer representing the type of View. Two views should share - * the same type if one can be converted to the other in - * {@link #getView}. Note: Integers must be in the range 0 to - * {@link #getViewTypeCount} - 1. {@link #IGNORE_ITEM_VIEW_TYPE} can - * also be returned. - * @see #IGNORE_ITEM_VIEW_TYPE - */ - public int getItemViewType(int position) { - return 0; - } - - /** - * Get a View that displays the data at the specified position in the data - * set. You can either create a View manually or inflate it from an XML - * layout file. When the View is inflated, the parent View (GridView, - * ListView...) will apply default layout parameters unless you use - * {@link android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean)} - * to specify a root view and to prevent attachment to the root. - * - * @param position - * The position of the item within the adapter's data set of the - * item whose view we want. - * @param convertView - * The old view to reuse, if possible. Note: You should check - * that this view is non-null and of an appropriate type before - * using. If it is not possible to convert this view to display - * the correct data, this method can create a new view. - * Heterogeneous lists can specify their number of view types, so - * that this View is always of the right type (see - * {@link #getViewTypeCount()} and {@link #getItemViewType(int)} - * ). - * @param parent - * The parent that this view will eventually be attached to - * @return A View corresponding to the data at the specified position. - */ - public abstract View getView(int position, View convertView, - ViewGroup container); -} diff --git a/app/src/main/java/net/oschina/app/adapter/SearchAdapter.java b/app/src/main/java/net/oschina/app/adapter/SearchAdapter.java deleted file mode 100644 index 9e77e3c0b..000000000 --- a/app/src/main/java/net/oschina/app/adapter/SearchAdapter.java +++ /dev/null @@ -1,70 +0,0 @@ -package net.oschina.app.adapter; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.SearchResult; -import net.oschina.app.util.StringUtils; -import android.annotation.SuppressLint; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -public class SearchAdapter extends ListBaseAdapter { - - @SuppressLint("InflateParams") - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_news, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - SearchResult item = (SearchResult) mDatas.get(position); - - vh.title.setText(item.getTitle()); - - if (item.getDescription() == null || StringUtils.isEmpty(item.getDescription())) { - vh.description.setVisibility(View.GONE); - } else { - vh.description.setVisibility(View.VISIBLE); - vh.description.setText(item.getDescription()); - } - - if (!StringUtils.isEmpty(item.getAuthor())) { - vh.source.setText(item.getAuthor()); - } else { - vh.source.setVisibility(View.GONE); - } - - if (!StringUtils.isEmpty(item.getPubDate())) { - vh.time.setText(StringUtils.friendly_time(item.getPubDate())); - } else { - vh.time.setVisibility(View.GONE); - } - - vh.tip.setVisibility(View.GONE); - vh.comment_count.setVisibility(View.GONE); - return convertView; - } - - static class ViewHolder { - @InjectView(R.id.tv_title)TextView title; - @InjectView(R.id.tv_description)TextView description; - @InjectView(R.id.tv_source)TextView source; - @InjectView(R.id.tv_time)TextView time; - @InjectView(R.id.tv_comment_count)TextView comment_count; - @InjectView(R.id.iv_tip)ImageView tip; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/SearchFriendAdapter.java b/app/src/main/java/net/oschina/app/adapter/SearchFriendAdapter.java deleted file mode 100644 index 313cc6c87..000000000 --- a/app/src/main/java/net/oschina/app/adapter/SearchFriendAdapter.java +++ /dev/null @@ -1,111 +0,0 @@ -package net.oschina.app.adapter; - -import android.content.Context; -import android.text.SpannableString; -import android.text.Spanned; -import android.text.style.ForegroundColorSpan; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.CheckBox; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.ui.SelectFriendsActivity; -import net.oschina.app.widget.AvatarView; - -import java.util.List; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - *

Created 15/8/27 下午9:29.

- *

Email:730395591@qq.com

- *

LeonLee Blog

- * - * @author 李文龙(LeonLee - * - * 搜索好友结果适配器 - */ -public class SearchFriendAdapter extends BaseAdapter { - - final List mSearchResults; - private LayoutInflater mInflater; - - public SearchFriendAdapter(List list) { - this.mSearchResults = list; - } - - protected LayoutInflater getLayoutInflater(Context context) { - if (mInflater == null) { - mInflater = (LayoutInflater) context - .getSystemService(Context.LAYOUT_INFLATER_SERVICE); - } - return mInflater; - } - - @Override - public int getCount() { - return mSearchResults.size(); - } - - @Override - public SelectFriendsActivity.SearchItem getItem(int position) { - return mSearchResults.get(position); - } - - @Override - public long getItemId(int position) { - return 0; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - final NormalViewHolder holder; - if(convertView == null) { - convertView = getLayoutInflater(parent.getContext()).inflate(R.layout.list_cell_select_friend, parent, false); - holder = new NormalViewHolder(convertView); - convertView.setTag(holder); - } else { - holder = (NormalViewHolder) convertView.getTag(); - } - holder.bind(getItem(position)); - return convertView; - } - - static class NormalViewHolder { - @InjectView(R.id.tv_name) - TextView name; - @InjectView(R.id.iv_avatar) - AvatarView avatar; - @InjectView(R.id.cb_check) - CheckBox checkBox; - - NormalViewHolder(View view) { - ButterKnife.inject(this, view); - avatar.setClickable(false); - } - - public void bind(SelectFriendsActivity.SearchItem item) { - SelectFriendsActivity.FriendItem friendItem = item.getFriendItem(); - avatar.setAvatarUrl(friendItem.getFriend().getPortrait()); - checkBox.setChecked(friendItem.isSelected()); - - avatar.setDisplayCircle(false); - - int start = item.getStartIndex(); - if(start != -1) { - SpannableString ss = new SpannableString(friendItem.getFriend().getName()); - ss.setSpan(new ForegroundColorSpan(item.getHightLightColor()), start, - start + item.getKeyLength(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE); - name.setText(ss); - } else { - name.setText(friendItem.getFriend().getName()); - } - - } - } - -} diff --git a/app/src/main/java/net/oschina/app/adapter/SelectFriendAdapter.java b/app/src/main/java/net/oschina/app/adapter/SelectFriendAdapter.java deleted file mode 100644 index b2b85e972..000000000 --- a/app/src/main/java/net/oschina/app/adapter/SelectFriendAdapter.java +++ /dev/null @@ -1,219 +0,0 @@ -package net.oschina.app.adapter; - -import android.content.Context; -import android.util.SparseArray; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.CheckBox; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.ui.SelectFriendsActivity; -import net.oschina.app.widget.AvatarView; - -import java.util.ArrayList; -import java.util.List; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - *

Created 15/8/26 下午2:09.

- *

Email:730395591@qq.com

- *

LeonLee Blog

- * - * @author 李文龙(LeonLee) - */ -public class SelectFriendAdapter extends BaseAdapter { - - private static final char DEFAULT_OTHER_LETTER = '#'; - - private static final int VIEWTYPE_HEADER = 0; - private static final int VIEWTYPE_NORMAL = 1; - - private List mList = new ArrayList<>(); - //记录索引值对应的位置 - private SparseArray mPositionArray = new SparseArray<>(); - - private LayoutInflater mInflater; - - public SelectFriendAdapter() { - - } - - protected LayoutInflater getLayoutInflater(Context context) { - if (mInflater == null) { - mInflater = (LayoutInflater) context - .getSystemService(Context.LAYOUT_INFLATER_SERVICE); - } - return mInflater; - } - - public void setFriendItems(List list) { - mPositionArray.clear(); - mList.clear(); - - //非字母开头的列表 - List otherList = null; - - char lastIndex = '0'; - for(SelectFriendsActivity.FriendItem item : list) { - char indexLetter; - char c = item.getFirstLetter(); - if(c >= 'A' && c <= 'Z') { - indexLetter = c; - } else if(c >= 'a' && c <= 'z') { - indexLetter = (char)(c - 'a' + 'A'); - } else { - indexLetter = DEFAULT_OTHER_LETTER; - } - if(indexLetter == DEFAULT_OTHER_LETTER) { - if(otherList == null) { - otherList = new ArrayList<>(); - } - otherList.add(new NormalItemData(item)); - } else { - if (indexLetter != lastIndex) { - mPositionArray.append(indexLetter, mList.size()); - mList.add(new HeaderItemData(String.valueOf(indexLetter))); - lastIndex = indexLetter; - } - mList.add(new NormalItemData(item)); - } - } - //将没有索引的数据列表放到最后 - if(otherList != null && !otherList.isEmpty()) { - mPositionArray.append(DEFAULT_OTHER_LETTER, mList.size()); - mList.add(new HeaderItemData(String.valueOf(DEFAULT_OTHER_LETTER))); - mList.addAll(otherList); - } - - notifyDataSetChanged(); - } - - /** 根据索引获取位置*/ - public int getPositionByIndex(char indexLetter) { - Integer value = mPositionArray.get(indexLetter); - if(value == null) { - return -1; - } - return value; - } - - public SelectFriendsActivity.FriendItem getFriendItem(int position) { - ItemData data = getItem(position); - if(data instanceof NormalItemData) { - return ((NormalItemData)data).friendItem; - } - return null; - } - - @Override - public int getCount() { - return mList.size(); - } - - @Override - public ItemData getItem(int position) { - return mList.get(position); - } - - @Override - public long getItemId(int position) { - return position; - } - - @Override - public int getViewTypeCount() { - return 2; - } - - @Override - public int getItemViewType(int position) { - return (getItem(position) instanceof HeaderItemData) ? VIEWTYPE_HEADER : VIEWTYPE_NORMAL; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - final ItemData itemData = getItem(position); - if(itemData instanceof HeaderItemData) { - final HeaderViewHolder holder; - if(convertView == null) { - convertView = getLayoutInflater(parent.getContext()).inflate(R.layout.list_index_header, parent, false); - holder = new HeaderViewHolder(convertView); - convertView.setTag(holder); - convertView.setEnabled(false); - } else { - holder = (HeaderViewHolder) convertView.getTag(); - } - holder.bind(((HeaderItemData)itemData).index); - } else { - final NormalViewHolder holder; - if(convertView == null) { - convertView = getLayoutInflater(parent.getContext()).inflate(R.layout.list_cell_select_friend, parent, false); - holder = new NormalViewHolder(convertView); - convertView.setTag(holder); - } else { - holder = (NormalViewHolder) convertView.getTag(); - } - holder.bind(((NormalItemData)itemData).friendItem); - } - - return convertView; - } - - private interface ItemData {} - - static class HeaderItemData implements ItemData { - String index; - public HeaderItemData(String index) { - this.index = index; - } - } - - static class NormalItemData implements ItemData { - SelectFriendsActivity.FriendItem friendItem; - - public NormalItemData(SelectFriendsActivity.FriendItem friendItem) { - this.friendItem = friendItem; - } - } - - static class HeaderViewHolder { - @InjectView(R.id.header_text) - TextView text; - - HeaderViewHolder(View view) { - ButterKnife.inject(this, view); - } - - public void bind(String index) { - text.setText(index); - } - } - - static class NormalViewHolder { - @InjectView(R.id.tv_name) - TextView name; - @InjectView(R.id.iv_avatar) - AvatarView avatar; - @InjectView(R.id.cb_check) - CheckBox checkBox; - - NormalViewHolder(View view) { - ButterKnife.inject(this, view); - avatar.setClickable(false); - } - - public void bind(SelectFriendsActivity.FriendItem item) { - name.setText(item.getFriend().getName()); - avatar.setAvatarUrl(item.getFriend().getPortrait()); - checkBox.setChecked(item.isSelected()); - - avatar.setDisplayCircle(false); - - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/SoftwareAdapter.java b/app/src/main/java/net/oschina/app/adapter/SoftwareAdapter.java deleted file mode 100644 index 2aea0ca4d..000000000 --- a/app/src/main/java/net/oschina/app/adapter/SoftwareAdapter.java +++ /dev/null @@ -1,58 +0,0 @@ -package net.oschina.app.adapter; - -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.SoftwareDec; -import net.oschina.app.bean.SoftwareList; -import net.oschina.app.util.ThemeSwitchUtils; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -public class SoftwareAdapter extends ListBaseAdapter { - - static class ViewHold { - @InjectView(R.id.tv_title) - TextView name; - @InjectView(R.id.tv_software_des) - TextView des; - - public ViewHold(View view) { - ButterKnife.inject(this, view); - } - } - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - - ViewHold vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate(R.layout.list_cell_software, null); - vh = new ViewHold(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHold) convertView.getTag(); - } - - SoftwareDec softwareDes = (SoftwareDec) mDatas.get(position); - vh.name.setText(softwareDes.getName()); - - if (AppContext.isOnReadedPostList(SoftwareList.PREF_READED_SOFTWARE_LIST, - softwareDes.getName())) { - vh.name.setTextColor(parent.getContext().getResources() - .getColor(ThemeSwitchUtils.getTitleReadedColor())); - } else { - vh.name.setTextColor(parent.getContext().getResources() - .getColor(ThemeSwitchUtils.getTitleUnReadedColor())); - } - - vh.des.setText(softwareDes.getDescription()); - - return convertView; - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/SoftwareCatalogListAdapter.java b/app/src/main/java/net/oschina/app/adapter/SoftwareCatalogListAdapter.java deleted file mode 100644 index 68a4b0271..000000000 --- a/app/src/main/java/net/oschina/app/adapter/SoftwareCatalogListAdapter.java +++ /dev/null @@ -1,39 +0,0 @@ -package net.oschina.app.adapter; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.SoftwareCatalogList.SoftwareType; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -public class SoftwareCatalogListAdapter extends ListBaseAdapter { - - static class ViewHold{ - @InjectView(R.id.tv_software_catalog_name)TextView name; - public ViewHold(View view) { - ButterKnife.inject(this,view); - } - } - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - - ViewHold vh = null; - - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate(R.layout.list_cell_softwarecatalog, null); - vh = new ViewHold(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHold)convertView.getTag(); - } - - SoftwareType softwareType = (SoftwareType) mDatas.get(position); - vh.name.setText(softwareType.getName()); - return convertView; - - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/TweetAdapter.java b/app/src/main/java/net/oschina/app/adapter/TweetAdapter.java deleted file mode 100644 index 8fcb096ea..000000000 --- a/app/src/main/java/net/oschina/app/adapter/TweetAdapter.java +++ /dev/null @@ -1,251 +0,0 @@ -package net.oschina.app.adapter; - -import android.content.Context; -import android.content.DialogInterface; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.text.Html; -import android.text.Spannable; -import android.text.SpannableString; -import android.text.Spanned; -import android.text.TextUtils; -import android.text.style.ImageSpan; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Tweet; -import net.oschina.app.emoji.InputHelper; -import net.oschina.app.ui.ImagePreviewActivity; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.ImageUtils; -import net.oschina.app.util.KJAnimations; -import net.oschina.app.util.PlatfromUtil; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TypefaceUtils; -import net.oschina.app.util.UIHelper; -import net.oschina.app.widget.AvatarView; -import net.oschina.app.widget.MyLinkMovementMethod; -import net.oschina.app.widget.TweetTextView; - -import org.kymjs.kjframe.Core; -import org.kymjs.kjframe.utils.DensityUtils; - -import butterknife.ButterKnife; -import butterknife.InjectView; -import cz.msebera.android.httpclient.Header; - -public class TweetAdapter extends ListBaseAdapter { - - static class ViewHolder { - @InjectView(R.id.tv_tweet_name) - TextView author; - @InjectView(R.id.tv_tweet_time) - TextView time; - @InjectView(R.id.tweet_item) - TweetTextView content; - @InjectView(R.id.tv_tweet_comment_count) - TextView commentcount; - @InjectView(R.id.tv_tweet_platform) - TextView platform; - @InjectView(R.id.iv_tweet_face) - AvatarView face; - @InjectView(R.id.iv_tweet_image) - ImageView image; - @InjectView(R.id.tv_like_state) - TextView tvLikeState; - @InjectView(R.id.tv_del) - TextView del; - @InjectView(R.id.tv_likeusers) - TextView likeUsers; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - image.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - String url = (String) v.getTag(); - int index = url.lastIndexOf("?"); - if (index > 0) { - url = url.substring(0, index); - } - ImagePreviewActivity.showImagePrivew(v.getContext(), 0, new String[]{url}); - } - }); - } - } - - private Bitmap recordBitmap; - private Context context; - - final private AsyncHttpResponseHandler handler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - } - }; - - private void initRecordImg(Context cxt) { - recordBitmap = BitmapFactory.decodeResource(cxt.getResources(), - R.drawable.audio3); - recordBitmap = ImageUtils.zoomBitmap(recordBitmap, - DensityUtils.dip2px(cxt, 20f), DensityUtils.dip2px(cxt, 20f)); - } - - @Override - protected View getRealView(final int position, View convertView, ViewGroup parent) { - context = parent.getContext(); - final ViewHolder vh; - if (convertView == null || convertView.getTag() == null) { - convertView = View.inflate(context, R.layout.list_cell_tweet, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - final Tweet tweet = mDatas.get(position); - - if (tweet.getAuthorid() == AppContext.getInstance().getLoginUid()) { - vh.del.setVisibility(View.VISIBLE); - vh.del.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - optionDel(context, tweet, position); - } - }); - } else { - vh.del.setVisibility(View.GONE); - } - - vh.face.setUserInfo(tweet.getAuthorid(), tweet.getAuthor()); - vh.face.setAvatarUrl(tweet.getPortrait()); - vh.author.setText(tweet.getAuthor()); - vh.time.setText(StringUtils.friendly_time(tweet.getPubDate())); - vh.content.setMovementMethod(MyLinkMovementMethod.a()); - vh.content.setFocusable(false); - vh.content.setDispatchToParent(true); - vh.content.setLongClickable(false); - - Spanned span = Html.fromHtml(tweet.getBody().trim()); - - if (!StringUtils.isEmpty(tweet.getAttach())) { - if (recordBitmap == null) { - initRecordImg(context); - } - ImageSpan recordImg = new ImageSpan(context, recordBitmap); - SpannableString str = new SpannableString("c"); - str.setSpan(recordImg, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - vh.content.setText(str); - span = InputHelper.displayEmoji(context.getResources(), span); - vh.content.append(span); - } else { - span = InputHelper.displayEmoji(context.getResources(), span); - vh.content.setText(span); - } - - vh.commentcount.setText(tweet.getCommentCount()); - - showTweetImage(vh, tweet.getImgSmall(), tweet.getImgBig()); - tweet.setLikeUsers(context, vh.likeUsers, true); - - if (tweet.getLikeUser() == null) { - vh.tvLikeState.setVisibility(View.GONE); - } else { - vh.tvLikeState.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - if (AppContext.getInstance().isLogin()) { - updateLikeState(vh, tweet); - } else { - AppContext.showToast("先登陆再赞~"); - UIHelper.showLoginActivity(context); - } - } - }); - } - - TypefaceUtils.setTypeface(vh.tvLikeState); - if (tweet.getIsLike() == 1) { - vh.tvLikeState.setTextColor(AppContext.getInstance().getResources().getColor(R.color - .day_colorPrimary)); - } else { - vh.tvLikeState.setTextColor(AppContext.getInstance().getResources().getColor(R.color - .gray)); - } - PlatfromUtil.setPlatFromString(vh.platform, tweet.getAppclient()); - return convertView; - } - - private void updateLikeState(ViewHolder vh, Tweet tweet) { - if (tweet.getIsLike() == 1) { - tweet.setIsLike(0); - tweet.setLikeCount(tweet.getLikeCount() - 1); - if (!tweet.getLikeUser().isEmpty()) { - tweet.getLikeUser().remove(0); - } - OSChinaApi.pubUnLikeTweet(tweet.getId(), tweet.getAuthorid(), - handler); - vh.tvLikeState.setTextColor(AppContext.getInstance().getResources().getColor(R.color - .gray)); - } else { - vh.tvLikeState.setAnimation(KJAnimations.getScaleAnimation(1.5f, 300)); - tweet.getLikeUser().add(0, AppContext.getInstance().getLoginUser()); - OSChinaApi.pubLikeTweet(tweet.getId(), tweet.getAuthorid(), handler); - vh.tvLikeState.setTextColor(AppContext.getInstance().getResources().getColor(R.color - .day_colorPrimary)); - tweet.setIsLike(1); - tweet.setLikeCount(tweet.getLikeCount() + 1); - } - tweet.setLikeUsers(context, vh.likeUsers, true); - } - - private void optionDel(Context context, final Tweet tweet, final int position) { - - DialogHelp.getConfirmDialog(context, "确定删除吗?", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - OSChinaApi.deleteTweet(tweet.getAuthorid(), tweet.getId(), - new AsyncHttpResponseHandler() { - @Override - public void onSuccess(int arg0, Header[] arg1, - byte[] arg2) { - mDatas.remove(position); - notifyDataSetChanged(); - } - - @Override - public void onFailure(int arg0, Header[] arg1, - byte[] arg2, Throwable arg3) { - } - }); - } - }).show(); - } - - /** - * 动态设置动弹列表图片显示规则 - */ - private void showTweetImage(final ViewHolder vh, String imgSmall, final String imgBig) { - if (!TextUtils.isEmpty(imgBig)) { - vh.image.setTag(imgBig); - new Core.Builder().view(vh.image).size(300, 300).url(imgBig + "?300X300") - .loadBitmapRes(R.drawable.pic_bg).doTask(); - vh.image.setVisibility(AvatarView.VISIBLE); - } else { - vh.image.setVisibility(AvatarView.GONE); - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/TweetLikeAdapter.java b/app/src/main/java/net/oschina/app/adapter/TweetLikeAdapter.java deleted file mode 100644 index 2dc6aa678..000000000 --- a/app/src/main/java/net/oschina/app/adapter/TweetLikeAdapter.java +++ /dev/null @@ -1,87 +0,0 @@ -package net.oschina.app.adapter; - -import android.annotation.SuppressLint; -import android.text.Spanned; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.TweetLike; -import net.oschina.app.util.PlatfromUtil; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.UIHelper; -import net.oschina.app.widget.AvatarView; -import net.oschina.app.widget.MyLinkMovementMethod; -import net.oschina.app.widget.MyURLSpan; -import net.oschina.app.widget.TweetTextView; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 动弹点赞适配器 TweetLikeAdapter.java - * - * @author 火蚁(http://my.oschina.net/u/253900) - * @data 2015-4-10 上午10:19:19 - */ -public class TweetLikeAdapter extends ListBaseAdapter { - - @SuppressLint("InflateParams") - @Override - protected View getRealView(int position, View convertView, - final ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_tweet_like, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - final TweetLike item = (TweetLike) mDatas.get(position); - - vh.name.setText(item.getUser().getName().trim()); - - vh.action.setText("赞了我的动弹"); - - vh.time.setText(StringUtils.friendly_time(item.getDatatime().trim())); - - PlatfromUtil.setPlatFromString(vh.from, item.getAppClient()); - vh.avatar.setUserInfo(item.getUser().getId(), item.getUser().getName()); - vh.avatar.setAvatarUrl(item.getUser().getPortrait()); - - vh.reply.setMovementMethod(MyLinkMovementMethod.a()); - vh.reply.setFocusable(false); - vh.reply.setDispatchToParent(true); - vh.reply.setLongClickable(false); - Spanned span = UIHelper.parseActiveReply(item.getTweet().getAuthor(), - item.getTweet().getBody()); - vh.reply.setText(span); - MyURLSpan.parseLinkText(vh.reply, span); - - return convertView; - } - - static class ViewHolder { - @InjectView(R.id.tv_name) - TextView name; - @InjectView(R.id.tv_from) - TextView from; - @InjectView(R.id.tv_time) - TextView time; - @InjectView(R.id.tv_action) - TextView action; - @InjectView(R.id.tv_reply) - TweetTextView reply; - @InjectView(R.id.iv_avatar) - AvatarView avatar; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} diff --git a/app/src/main/java/net/oschina/app/adapter/TweetLikeUsersAdapter.java b/app/src/main/java/net/oschina/app/adapter/TweetLikeUsersAdapter.java deleted file mode 100644 index 96110041b..000000000 --- a/app/src/main/java/net/oschina/app/adapter/TweetLikeUsersAdapter.java +++ /dev/null @@ -1,53 +0,0 @@ -package net.oschina.app.adapter; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.User; -import net.oschina.app.widget.AvatarView; - -/** - * TweetLikeUsersAdapter.java - * - * @author 火蚁(http://my.oschina.net/u/253900) - * - * @data 2015-3-26 下午4:11:25 - */ -public class TweetLikeUsersAdapter extends ListBaseAdapter { - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - // TODO Auto-generated method stub - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_tweet_like_user, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - User item = mDatas.get(position); - vh.avatar.setAvatarUrl(item.getPortrait()); - vh.name.setText(item.getName()); - return convertView; - } - - static class ViewHolder { - - @InjectView(R.id.iv_avatar) - AvatarView avatar; - @InjectView(R.id.tv_name) - TextView name; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} - diff --git a/app/src/main/java/net/oschina/app/adapter/UserFavoriteAdapter.java b/app/src/main/java/net/oschina/app/adapter/UserFavoriteAdapter.java deleted file mode 100644 index 405820f3e..000000000 --- a/app/src/main/java/net/oschina/app/adapter/UserFavoriteAdapter.java +++ /dev/null @@ -1,41 +0,0 @@ -package net.oschina.app.adapter; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Favorite; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -public class UserFavoriteAdapter extends ListBaseAdapter { - - static class ViewHolder { - - @InjectView(R.id.tv_favorite_title) TextView title; - - public ViewHolder(View view) { - ButterKnife.inject(this,view); - } - } - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_favorite, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - Favorite favorite = (Favorite) mDatas.get(position); - - vh.title.setText(favorite.getTitle()); - return convertView; - } - -} diff --git a/app/src/main/java/net/oschina/app/adapter/ViewPageFragmentAdapter.java b/app/src/main/java/net/oschina/app/adapter/ViewPageFragmentAdapter.java deleted file mode 100644 index e21676815..000000000 --- a/app/src/main/java/net/oschina/app/adapter/ViewPageFragmentAdapter.java +++ /dev/null @@ -1,124 +0,0 @@ -package net.oschina.app.adapter; - -import java.util.ArrayList; - -import net.oschina.app.R; -import net.oschina.app.widget.PagerSlidingTabStrip; -import android.annotation.SuppressLint; -import android.content.Context; -import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentStatePagerAdapter; -import android.support.v4.view.PagerAdapter; -import android.support.v4.view.ViewPager; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.TextView; - -@SuppressLint("Recycle") -public class ViewPageFragmentAdapter extends FragmentStatePagerAdapter { - - private final Context mContext; - protected PagerSlidingTabStrip mPagerStrip; - private final ViewPager mViewPager; - private final ArrayList mTabs = new ArrayList(); - - public ViewPageFragmentAdapter(FragmentManager fm, - PagerSlidingTabStrip pageStrip, ViewPager pager) { - super(fm); - mContext = pager.getContext(); - mPagerStrip = pageStrip; - mViewPager = pager; - mViewPager.setAdapter(this); - mPagerStrip.setViewPager(mViewPager); - } - - public void addTab(String title, String tag, Class clss, Bundle args) { - ViewPageInfo viewPageInfo = new ViewPageInfo(title, tag, clss, args); - addFragment(viewPageInfo); - } - - public void addAllTab(ArrayList mTabs) { - for (ViewPageInfo viewPageInfo : mTabs) { - addFragment(viewPageInfo); - } - } - - private void addFragment(ViewPageInfo info) { - if (info == null) { - return; - } - - // 加入tab title - View v = LayoutInflater.from(mContext).inflate( - R.layout.base_viewpage_fragment_tab_item, null, false); - TextView title = (TextView) v.findViewById(R.id.tab_title); - title.setText(info.title); - mPagerStrip.addTab(v); - - mTabs.add(info); - notifyDataSetChanged(); - } - - /** - * 移除第一次 - */ - public void remove() { - remove(0); - } - - /** - * 移除一个tab - * - * @param index - * 备注:如果index小于0,则从第一个开始删 如果大于tab的数量值则从最后一个开始删除 - */ - public void remove(int index) { - if (mTabs.isEmpty()) { - return; - } - if (index < 0) { - index = 0; - } - if (index >= mTabs.size()) { - index = mTabs.size() - 1; - } - mTabs.remove(index); - mPagerStrip.removeTab(index, 1); - notifyDataSetChanged(); - } - - /** - * 移除所有的tab - */ - public void removeAll() { - if (mTabs.isEmpty()) { - return; - } - mPagerStrip.removeAllTab(); - mTabs.clear(); - notifyDataSetChanged(); - } - - @Override - public int getCount() { - return mTabs.size(); - } - - @Override - public int getItemPosition(Object object) { - return PagerAdapter.POSITION_NONE; - } - - @Override - public Fragment getItem(int position) { - ViewPageInfo info = mTabs.get(position); - return Fragment.instantiate(mContext, info.clss.getName(), info.args); - } - - @Override - public CharSequence getPageTitle(int position) { - return mTabs.get(position).title; - } -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/adapter/ViewPageInfo.java b/app/src/main/java/net/oschina/app/adapter/ViewPageInfo.java deleted file mode 100644 index 61307db2e..000000000 --- a/app/src/main/java/net/oschina/app/adapter/ViewPageInfo.java +++ /dev/null @@ -1,18 +0,0 @@ -package net.oschina.app.adapter; - -import android.os.Bundle; - -public final class ViewPageInfo { - - public final String tag; - public final Class clss; - public final Bundle args; - public final String title; - - public ViewPageInfo(String _title, String _tag, Class _class, Bundle _args) { - title = _title; - tag = _tag; - clss = _class; - args = _args; - } -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/api/ApiClientHelper.java b/app/src/main/java/net/oschina/app/api/ApiClientHelper.java deleted file mode 100644 index f6da30264..000000000 --- a/app/src/main/java/net/oschina/app/api/ApiClientHelper.java +++ /dev/null @@ -1,22 +0,0 @@ -package net.oschina.app.api; - -import net.oschina.app.AppContext; - -public class ApiClientHelper { - - /** - * 获得请求的服务端数据的userAgent - * @param appContext - * @return - */ - public static String getUserAgent(AppContext appContext) { - StringBuilder ua = new StringBuilder("OSChina.NET"); - ua.append('/' + appContext.getPackageInfo().versionName + '_' - + appContext.getPackageInfo().versionCode);// app版本信息 - ua.append("/Android");// 手机系统平台 - ua.append("/" + android.os.Build.VERSION.RELEASE);// 手机系统版本 - ua.append("/" + android.os.Build.MODEL); // 手机型号 - ua.append("/" + appContext.getAppId());// 客户端唯一标识 - return ua.toString(); - } -} diff --git a/app/src/main/java/net/oschina/app/api/ApiHttpClient.java b/app/src/main/java/net/oschina/app/api/ApiHttpClient.java deleted file mode 100644 index 47e124aff..000000000 --- a/app/src/main/java/net/oschina/app/api/ApiHttpClient.java +++ /dev/null @@ -1,149 +0,0 @@ -package net.oschina.app.api; - -import android.content.Context; -import android.util.Log; -import cz.msebera.android.httpclient.client.params.ClientPNames; - -import com.loopj.android.http.AsyncHttpClient; -import com.loopj.android.http.AsyncHttpResponseHandler; -import com.loopj.android.http.RequestParams; - -import net.oschina.app.AppContext; -import net.oschina.app.util.TLog; - -import java.util.Locale; - -public class ApiHttpClient { - - public final static String HOST = "www.oschina.net"; - private static String API_URL = "http://www.oschina.net/%s"; -// public final static String HOST = "192.168.1.101"; -// private static String API_URL = "http://192.168.1.101/%s"; - public static final String DELETE = "DELETE"; - public static final String GET = "GET"; - public static final String POST = "POST"; - public static final String PUT = "PUT"; - public static AsyncHttpClient client; - - public ApiHttpClient() { - } - - public static AsyncHttpClient getHttpClient() { - return client; - } - - public static void cancelAll(Context context) { - client.cancelRequests(context, true); - } - - public static void clearUserCookies(Context context) { - // (new HttpClientCookieStore(context)).a(); - } - - public static void delete(String partUrl, AsyncHttpResponseHandler handler) { - client.delete(getAbsoluteApiUrl(partUrl), handler); - log(new StringBuilder("DELETE ").append(partUrl).toString()); - } - - public static void get(String partUrl, AsyncHttpResponseHandler handler) { - client.get(getAbsoluteApiUrl(partUrl), handler); - log(new StringBuilder("GET ").append(partUrl).toString()); - } - - public static void get(String partUrl, RequestParams params, - AsyncHttpResponseHandler handler) { - client.get(getAbsoluteApiUrl(partUrl), params, handler); - log(new StringBuilder("GET ").append(partUrl).append("&") - .append(params).toString()); - } - - public static String getAbsoluteApiUrl(String partUrl) { - String url = partUrl; - if (!partUrl.startsWith("http:") && !partUrl.startsWith("https:")) { - url = String.format(API_URL, partUrl); - } - Log.d("BASE_CLIENT", "request:" + url); - return url; - } - - public static String getApiUrl() { - return API_URL; - } - - public static void getDirect(String url, AsyncHttpResponseHandler handler) { - client.get(url, handler); - log(new StringBuilder("GET ").append(url).toString()); - } - - public static void log(String log) { - Log.d("BaseApi", log); - TLog.log("Test", log); - } - - public static void post(String partUrl, AsyncHttpResponseHandler handler) { - client.post(getAbsoluteApiUrl(partUrl), handler); - log(new StringBuilder("POST ").append(partUrl).toString()); - } - - public static void post(String partUrl, RequestParams params, - AsyncHttpResponseHandler handler) { - client.post(getAbsoluteApiUrl(partUrl), params, handler); - log(new StringBuilder("POST ").append(partUrl).append("&") - .append(params).toString()); - } - - public static void postDirect(String url, RequestParams params, - AsyncHttpResponseHandler handler) { - client.post(url, params, handler); - log(new StringBuilder("POST ").append(url).append("&").append(params) - .toString()); - } - - public static void put(String partUrl, AsyncHttpResponseHandler handler) { - client.put(getAbsoluteApiUrl(partUrl), handler); - log(new StringBuilder("PUT ").append(partUrl).toString()); - } - - public static void put(String partUrl, RequestParams params, - AsyncHttpResponseHandler handler) { - client.put(getAbsoluteApiUrl(partUrl), params, handler); - log(new StringBuilder("PUT ").append(partUrl).append("&") - .append(params).toString()); - } - - public static void setApiUrl(String apiUrl) { - API_URL = apiUrl; - } - - public static void setHttpClient(AsyncHttpClient c) { - client = c; - client.addHeader("Accept-Language", Locale.getDefault().toString()); - client.addHeader("Host", HOST); - client.addHeader("Connection", "Keep-Alive"); - client.getHttpClient().getParams() - .setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true); - - setUserAgent(ApiClientHelper.getUserAgent(AppContext.getInstance())); - } - - public static void setUserAgent(String userAgent) { - client.setUserAgent(userAgent); - } - - public static void setCookie(String cookie) { - client.addHeader("Cookie", cookie); - } - - private static String appCookie; - - public static void cleanCookie() { - appCookie = ""; - } - - public static String getCookie(AppContext appContext) { - if (appCookie == null || appCookie == "") { - appCookie = appContext.getProperty("cookie"); - } - return appCookie; - } -} diff --git a/app/src/main/java/net/oschina/app/api/ApiResponse.java b/app/src/main/java/net/oschina/app/api/ApiResponse.java deleted file mode 100644 index 119d9af58..000000000 --- a/app/src/main/java/net/oschina/app/api/ApiResponse.java +++ /dev/null @@ -1,90 +0,0 @@ -package net.oschina.app.api; - -import org.json.JSONObject; - -public class ApiResponse { - protected Object _data; - protected String _message; - protected int _errorCode; - protected boolean _isOk; - private long _total; - private String _serverTime; - private boolean isCanceled; - - public ApiResponse(JSONObject json) { - if (json != null) { - setData(json.optJSONObject("data") == null ? json - .optJSONArray("data") : json.optJSONObject("data")); - setMessage(json.optString("result_desc")); - setErrorCode(json.optInt("result_code")); - setOk(getErrorCode() == 0); - setServerTime(json.optString("timestamp")); - } - } - - public Object getData() { - return _data; - } - - public void setData(Object _data) { - this._data = _data; - } - - public boolean isOk() { - return _isOk; - } - - public void setOk(boolean _isOk) { - this._isOk = _isOk; - } - - public String getMessage() { - return _message; - } - - public void setMessage(String _message) { - this._message = _message; - } - - public int getErrorCode() { - return _errorCode; - } - - public void setErrorCode(int _errorCode) { - this._errorCode = _errorCode; - } - - @Override - public String toString() { - return "data:" + getData() + " message:" + getMessage() + " errocode:" - + _errorCode; - } - - public void update(ApiResponse response) { - _message = response.getMessage(); - } - - public void setTotal(long total) { - _total = total; - } - - public long getTotal() { - return _total; - } - - public String getServerTime() { - return _serverTime; - } - - public void setServerTime(String _serverTime) { - this._serverTime = _serverTime; - } - - public boolean isCanceled() { - return isCanceled; - } - - public void setCanceled(boolean isCanceled) { - this.isCanceled = isCanceled; - } -} diff --git a/app/src/main/java/net/oschina/app/api/OperationResponseHandler.java b/app/src/main/java/net/oschina/app/api/OperationResponseHandler.java deleted file mode 100644 index 604fdca13..000000000 --- a/app/src/main/java/net/oschina/app/api/OperationResponseHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -package net.oschina.app.api; - -import java.io.ByteArrayInputStream; - - -import android.os.Looper; -import cz.msebera.android.httpclient.Header; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -public class OperationResponseHandler extends AsyncHttpResponseHandler { - - private Object[] args; - - public OperationResponseHandler(Looper looper, Object... args) { - super(looper); - this.args = args; - } - - public OperationResponseHandler(Object... args) { - this.args = args; - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) { - onFailure(arg0, arg3.getMessage(), args); - } - - public void onFailure(int code, String errorMessage, Object[] args) { - } - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - onSuccess(arg0, new ByteArrayInputStream(arg2), args); - } catch (Exception e) { - e.printStackTrace(); - onFailure(arg0, e.getMessage(), args); - } - } - - public void onSuccess(int code, ByteArrayInputStream is, Object[] args) - throws Exception { - - } -} diff --git a/app/src/main/java/net/oschina/app/api/remote/OSChinaApi.java b/app/src/main/java/net/oschina/app/api/remote/OSChinaApi.java deleted file mode 100644 index cc5097959..000000000 --- a/app/src/main/java/net/oschina/app/api/remote/OSChinaApi.java +++ /dev/null @@ -1,1029 +0,0 @@ -package net.oschina.app.api.remote; - -import android.text.TextUtils; - -import com.loopj.android.http.AsyncHttpResponseHandler; -import com.loopj.android.http.RequestParams; - -import net.oschina.app.AppContext; -import net.oschina.app.AppException; -import net.oschina.app.api.ApiHttpClient; -import net.oschina.app.bean.EventApplyData; -import net.oschina.app.bean.NewsList; -import net.oschina.app.bean.Report; -import net.oschina.app.bean.Tweet; -import net.oschina.app.team.bean.Team; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TLog; - -import org.kymjs.kjframe.utils.KJLoger; - -import java.io.File; -import java.io.FileNotFoundException; -import java.net.URLEncoder; - -public class OSChinaApi { - - /** - * 登陆 - * - * @param username - * @param password - * @param handler - */ - public static void login(String username, String password, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("username", username); - params.put("pwd", password); - params.put("keep_login", 1); - String loginurl = "action/api/login_validate"; - ApiHttpClient.post(loginurl, params, handler); - } - - public static void openIdLogin(String s) { - - } - - /** - * 获取新闻列表 - * - * @param catalog - * 类别 (1,2,3) - * @param page - * 第几页 - * @param handler - */ - public static void getNewsList(int catalog, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("catalog", catalog); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - if (catalog == NewsList.CATALOG_WEEK) { - params.put("show", "week"); - } else if (catalog == NewsList.CATALOG_MONTH) { - params.put("show", "month"); - } - ApiHttpClient.get("action/api/news_list", params, handler); - } - - public static void getBlogList(String type, int pageIndex, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("type", type); - params.put("pageIndex", pageIndex); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/blog_list", params, handler); - } - - public static void getPostList(int catalog, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("catalog", catalog); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/post_list", params, handler); - } - - public static void getPostListByTag(String tag, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("tag", tag); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/post_list", params, handler); - } - - public static void getTweetList(int uid, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/tweet_list", params, handler); - } - - public static void getTweetTopicList(int page, String topic, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("pageIndex", page); - params.put("title", topic); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/tweet_topic_list", params, handler); - } - - public static void getTweetLikeList(AsyncHttpResponseHandler handler) { - ApiHttpClient.get("action/api/my_tweet_like_list", handler); - } - - public static void pubLikeTweet(int tweetId, int authorId, - AsyncHttpResponseHandler handler) { - - RequestParams params = new RequestParams(); - params.put("tweetid", tweetId); - params.put("uid", AppContext.getInstance().getLoginUid()); - params.put("ownerOfTweet", authorId); - ApiHttpClient.post("action/api/tweet_like", params, handler); - } - - public static void pubUnLikeTweet(int tweetId, int authorId, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("tweetid", tweetId); - params.put("uid", AppContext.getInstance().getLoginUid()); - params.put("ownerOfTweet", authorId); - ApiHttpClient.post("action/api/tweet_unlike", params, handler); - } - - public static void getTweetLikeList(int tweetId, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("tweetid", tweetId); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/tweet_like_list", params, handler); - - } - - public static void getActiveList(int uid, int catalog, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("catalog", catalog); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/active_list", params, handler); - } - - public static void getFriendList(int uid, int relation, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("relation", relation); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/friends_list", params, handler); - } - - /** - * 获取所有关注好友列表 - * - * @param uid - * 指定用户UID - * @param handler - * */ - public static void getAllFriendsList(int uid, int relation, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("relation", relation); - params.put("all", 1); - ApiHttpClient.get("action/api/friends_list", params, handler); - } - - /** - * 获取用户收藏 - * - * @param uid - * 指定用户UID - * @param type - * 收藏类型: 0:全部收藏 1:软件 2:话题 3:博客 4:新闻 5:代码 - * @param page - * @param handler - */ - public static void getFavoriteList(int uid, int type, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("type", type); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/favorite_list", params, handler); - } - - /** - * 分类列表 - * - * @param tag - * 第一级:0 - * @param handler - */ - public static void getSoftwareCatalogList(int tag, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams("tag", tag); - ApiHttpClient.get("action/api/softwarecatalog_list", params, handler); - } - - public static void getSoftwareTagList(int searchTag, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("searchTag", searchTag); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/softwaretag_list", params, handler); - } - - /** - * @param searchTag - *   软件分类  推荐:recommend 最新:time 热门:view 国产:list_cn - * @param page - * @param handler - */ - public static void getSoftwareList(String searchTag, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("searchTag", searchTag); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/software_list", params, handler); - } - - /** - * 获取评论列表 - * - * @PARAM ID - * @PARAM CATALOG - * 1新闻 2帖子 3动弹 4动态 - * @PARAM PAGE - * @PARAM HANDLER - */ - public static void getCommentList(int id, int catalog, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("catalog", catalog); - params.put("id", id); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - params.put("clientType", "android"); - ApiHttpClient.get("action/api/comment_list", params, handler); - } - - public static void getBlogCommentList(int id, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("id", id); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/blogcomment_list", params, handler); - } - - public static void getChatMessageList(int friendId, int page, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("id", friendId); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/message_detail", params, handler); - } - - public static void getUserInformation(int uid, int hisuid, String hisname, - int pageIndex, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("hisuid", hisuid); - params.put("hisname", hisname); - params.put("pageIndex", pageIndex); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/user_information", params, handler); - } - - @SuppressWarnings("deprecation") - public static void getUserBlogList(int authoruid, final String authorname, - final int uid, final int pageIndex, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("authoruid", authoruid); - params.put("authorname", URLEncoder.encode(authorname)); - params.put("uid", uid); - params.put("pageIndex", pageIndex); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/userblog_list", params, handler); - } - - public static void updateRelation(int uid, int hisuid, int newrelation, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("hisuid", hisuid); - params.put("newrelation", newrelation); - ApiHttpClient.post("action/api/user_updaterelation", params, handler); - } - - public static void getMyInformation(int uid, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - ApiHttpClient.get("action/api/my_information", params, handler); - } - - /** - * 获取新闻明细 - * - * @param id 新闻的id - * @param handler - */ - public static void getNewsDetail(int id, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams("id", id); - ApiHttpClient.get("action/api/news_detail", params, handler); - } - - public static void getBlogDetail(int id, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams("id", id); - ApiHttpClient.get("action/api/blog_detail", params, handler); - } - - /** - * 获取软件详情 - * - * @param ident - * @param handler - */ - public static void getSoftwareDetail(String ident, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams("ident", - ident); - ApiHttpClient.get("action/api/software_detail", params, handler); - } - - /*** - * 通过id获取软件详情 - * @param id - * @param handler - */ - public static void getSoftwareDetail(int id, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams("id", - id); - ApiHttpClient.get("action/api/software_detail", params, handler); - } - - public static void getPostDetail(int id, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams("id", id); - ApiHttpClient.get("action/api/post_detail", params, handler); - } - - public static void getTweetDetail(int id, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams("id", id); - ApiHttpClient.get("action/api/tweet_detail", params, handler); - } - - /** - * 用户针对某个新闻,帖子,动弹,消息发表评论的接口,参数使用POST方式提交 - * - * @param catalog - *    1新闻  2 帖子  3 动弹  4消息中心 - * @param id - * 被评论的某条新闻,帖子,动弹或者某条消息的id - * @param uid - * 当天登陆用户的UID - * @param content - * 发表的评论内容 - * @param isPostToMyZone - * 是否转发到我的空间,0不转发  1转发到我的空间(注意该功能之对某条动弹进行评论是有效,其他情况下服务器借口可以忽略该参数) - * @param handler - */ - public static void publicComment(int catalog, int id, int uid, - String content, int isPostToMyZone, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("catalog", catalog); - params.put("id", id); - params.put("uid", uid); - params.put("content", content); - params.put("isPostToMyZone", isPostToMyZone); - ApiHttpClient.post("action/api/comment_pub", params, handler); - } - - public static void replyComment(int id, int catalog, int replyid, - int authorid, int uid, String content, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("catalog", catalog); - params.put("id", id); - params.put("uid", uid); - params.put("content", content); - params.put("replyid", replyid); - params.put("authorid", authorid); - ApiHttpClient.post("action/api/comment_reply", params, handler); - } - - public static void publicBlogComment(int blog, int uid, String content, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("blog", blog); - params.put("uid", uid); - params.put("content", content); - ApiHttpClient.post("action/api/blogcomment_pub", params, handler); - } - - public static void replyBlogComment(int blog, int uid, String content, - int reply_id, int objuid, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("blog", blog); - params.put("uid", uid); - params.put("content", content); - params.put("reply_id", reply_id); - params.put("objuid", objuid); - ApiHttpClient.post("action/api/blogcomment_pub", params, handler); - } - - public static void pubTweet(Tweet tweet, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", tweet.getAuthorid()); - params.put("msg", tweet.getBody()); - - // Map files = new HashMap(); - if (!TextUtils.isEmpty(tweet.getImageFilePath())) { - try { - params.put("img", new File(tweet.getImageFilePath())); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - } - if (!TextUtils.isEmpty(tweet.getAudioPath())) { - try { - params.put("amr", new File(tweet.getAudioPath())); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - } - ApiHttpClient.post("action/api/tweet_pub", params, handler); - } - - public static void pubSoftWareTweet(Tweet tweet, int softid, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", tweet.getAuthorid()); - params.put("msg", tweet.getBody()); - params.put("project", softid); - ApiHttpClient.post("action/api/software_tweet_pub", params, handler); - } - - public static void deleteTweet(int uid, int tweetid, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("tweetid", tweetid); - ApiHttpClient.post("action/api/tweet_delete", params, handler); - } - - public static void deleteComment(int id, int catalog, int replyid, - int authorid, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("id", id); - params.put("catalog", catalog); - params.put("replyid", replyid); - params.put("authorid", authorid); - ApiHttpClient.post("action/api/comment_delete", params, handler); - } - - public static void deleteBlog(int uid, int authoruid, int id, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("authoruid", authoruid); - params.put("id", id); - ApiHttpClient.post("action/api/userblog_delete", params, handler); - } - - public static void deleteBlogComment(int uid, int blogid, int replyid, - int authorid, int owneruid, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("blogid", blogid); - params.put("replyid", replyid); - params.put("authorid", authorid); - params.put("owneruid", owneruid); - ApiHttpClient.post("action/api/blogcomment_delete", params, handler); - } - - /** - * 用户添加收藏 - * - * @param uid - * 用户UID - * @param objid - * 比如是新闻ID 或者问答ID 或者动弹ID - * @param type - * 1:软件 2:话题 3:博客 4:新闻 5:代码 - */ - public static void addFavorite(int uid, int objid, int type, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("objid", objid); - params.put("type", type); - ApiHttpClient.post("action/api/favorite_add", params, handler); - } - - public static void delFavorite(int uid, int objid, int type, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("objid", objid); - params.put("type", type); - ApiHttpClient.post("action/api/favorite_delete", params, handler); - } - - public static void getSearchList(String catalog, String content, - int pageIndex, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("catalog", catalog); - params.put("content", content); - params.put("pageIndex", pageIndex); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/search_list", params, handler); - } - - public static void publicMessage(int uid, int receiver, String content, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("receiver", receiver); - params.put("content", content); - - ApiHttpClient.post("action/api/message_pub", params, handler); - } - - public static void deleteMessage(int uid, int friendid, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("friendid", friendid); - ApiHttpClient.post("action/api/message_delete", params, handler); - } - - public static void forwardMessage(int uid, String receiverName, - String content, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("receiverName", receiverName); - params.put("content", content); - ApiHttpClient.post("action/api/message_pub", params, handler); - } - - public static void getMessageList(int uid, int pageIndex, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("pageIndex", pageIndex); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/message_list", params, handler); - } - - public static void updatePortrait(int uid, File portrait, - AsyncHttpResponseHandler handler) throws FileNotFoundException { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("portrait", portrait); - ApiHttpClient.post("action/api/portrait_update", params, handler); - } - - public static void getNotices(AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", AppContext.getInstance().getLoginUid()); - ApiHttpClient.get("action/api/user_notice", params, handler); - } - - /** - * 清空通知消息 - * - * @param uid - * @param type - * 1:@我的信息 2:未读消息 3:评论个数 4:新粉丝个数 - * @return - * @throws AppException - */ - public static void clearNotice(int uid, int type, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("type", type); - ApiHttpClient.post("action/api/notice_clear", params, handler); - } - - public static void singnIn(String url, AsyncHttpResponseHandler handler) { - ApiHttpClient.getDirect(url, handler); - } - - /** - * 获取软件的动态列表 - * - * @param softid - * @param handler - */ - public static void getSoftTweetList(int softid, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("project", softid); - params.put("pageIndex", page); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/software_tweet_list", params, handler); - } - - public static void checkUpdate(AsyncHttpResponseHandler handler) { - ApiHttpClient.get("MobileAppVersion.xml", handler); - } - - /** - * 查找用户 - * - * @param username - * @param handler - */ - public static void findUser(String username, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("name", username); - ApiHttpClient.get("action/api/find_user", params, handler); - } - - /** - * 获取活动列表 - * - * @param pageIndex - * @param uid - * <= 0 近期活动 实际的用户ID 则获取用户参与的活动列表,需要已登陆的用户 - * @param handler - */ - public static void getEventList(int pageIndex, int uid, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("pageIndex", pageIndex); - params.put("uid", uid); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/event_list", params, handler); - } - - /** - * 获取某活动已出席的人员列表 - * - * @param eventId - * @param pageIndex - * @param handler - */ - public static void getEventApplies(int eventId, int pageIndex, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("pageIndex", pageIndex); - params.put("event_id", eventId); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/event_attend_user", params, handler); - } - - /** - * 举报 - * - * @param report - * @param handler - */ - public static void report(Report report, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("obj_id", report.getObjId()); - params.put("url", report.getUrl()); - params.put("obj_type", report.getObjType()); - params.put("reason", report.getReason()); - if (report.getOtherReason() != null - && !StringUtils.isEmpty(report.getOtherReason())) { - params.put("memo", report.getOtherReason()); - } - ApiHttpClient.post("action/communityManage/report", params, handler); - } - - /** - * 摇一摇,随机数据 - * - * @param handler - */ - public static void shake(AsyncHttpResponseHandler handler) { - shake(-1, handler); - } - - /** - * 摇一摇指定请求类型 - */ - public static void shake(int type, AsyncHttpResponseHandler handler) { - String inter = "action/api/rock_rock"; - if (type > 0) { - inter = (inter + "/?type=" + type); - } - ApiHttpClient.get(inter, handler); - } - - /** - * 活动报名 - * - * @param data - * @param handler - */ - public static void eventApply(EventApplyData data, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("event", data.getEvent()); - params.put("user", data.getUser()); - params.put("name", data.getName()); - params.put("gender", data.getGender()); - params.put("mobile", data.getPhone()); - params.put("company", data.getCompany()); - params.put("job", data.getJob()); - if (!StringUtils.isEmpty(data.getRemark())) { - params.put("misc_info", data.getRemark()); - } - ApiHttpClient.post("action/api/event_apply", params, handler); - } - - private static void uploadLog(String data, String report, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("app", "1"); - params.put("report", report); - params.put("msg", data); - ApiHttpClient.post("action/api/user_report_to_admin", params, handler); - } - - /** - * BUG上报 - * - * @param data - * @param handler - */ - public static void uploadLog(String data, AsyncHttpResponseHandler handler) { - uploadLog(data, "1", handler); - } - - /** - * 反馈意见 - * - * @param data - * @param handler - */ - public static void feedback(String data, AsyncHttpResponseHandler handler) { - uploadLog(data, "2", handler); - } - - /** - * team动态 - * - * @param team - * @param page - * @param handler - */ - public static void teamDynamic(Team team, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - // int uid = AppContext.getInstance().getLoginUid(); - // params.put("uid", uid); - params.put("teamid", team.getId()); - params.put("pageIndex", page); - params.put("pageSize", 20); - params.put("type", "all"); - ApiHttpClient.get("action/api/team_active_list", params, handler); - } - - /** - * 获取team列表 - * - * @param handler - */ - public static void teamList(AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", AppContext.getInstance().getLoginUid()); - ApiHttpClient.get("action/api/team_list", params, handler); - } - - /** - * 获取team成员列表 - * - * @param handler - */ - public static void getTeamMemberList(int teamid, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamid); - ApiHttpClient.get("action/api/team_member_list", params, handler); - } - - /** - * 获取team成员个人信息 - * - * @param handler - */ - public static void getTeamUserInfo(String teamid, String uid, - int pageIndex, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamid); - params.put("uid", uid); - params.put("pageIndex", pageIndex); - params.put("pageSize", 20); - ApiHttpClient.get("action/api/team_user_information", params, handler); - } - - /** - * 获取我的任务中进行中、未完成、已完成等状态的数量 - */ - public static void getMyIssueState(String teamid, String uid, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamid); - params.put("uid", uid); - ApiHttpClient.get("action/api/team_user_issue_information", params, - handler); - } - - /** - * 获取指定用户的动态 - */ - public static void getUserDynamic(int teamid, String uid, int pageIndex, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamid); - params.put("pageIndex", pageIndex); - params.put("pageSize", 20); - params.put("type", "git"); - params.put("uid", uid); - ApiHttpClient.get("action/api/team_active_list", params, handler); - } - - /** - * 动态详情 - * - * @param activeid - * @param teamid - * @param uid - * @param handler - */ - public static void getDynamicDetail(int activeid, int teamid, int uid, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamid); - params.put("uid", uid); - params.put("activeid", activeid); - ApiHttpClient.get("action/api/team_active_detail", params, handler); - } - - /** - * 获取指定用户的任务 - */ - public static void getMyIssue(String teamid, String uid, int pageIndex, - String type, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamid); - params.put("uid", uid); - params.put("pageIndex", pageIndex); - params.put("pageSize", 20); - params.put("state", type); - params.put("projectid", "-1"); - ApiHttpClient.get("action/api/team_issue_list", params, handler); - } - - /** - * 获取指定周周报 - * - * @param teamid - * @param year - * @param week - * @param handler - */ - public static void getDiaryFromWhichWeek(int teamid, int year, int week, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamid); - params.put("year", year); - params.put("week", week); - ApiHttpClient.get("action/api/team_diary_list", params, handler); - } - - /** - * 删除一个便签 - * - * @param id - * 便签id - * @param uid - * 用户id - */ - public static void deleteNoteBook(int id, int uid, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("id", id); // 便签id - ApiHttpClient - .get("action/api/team_stickynote_recycle", params, handler); - } - - public static void getNoteBook(int uid, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - ApiHttpClient.get("action/api/team_sticky_list", params, handler); - } - - /** - * 获取指定周报的详细信息 - * - * @param teamid - * @param diaryid - * @param handler - */ - public static void getDiaryDetail(int teamid, int diaryid, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamid); - params.put("diaryid", diaryid); - ApiHttpClient.get("action/api/team_diary_detail", params, handler); - } - - /** - * diary评论列表 - * - * @param teamid - * @param diaryid - * @param handler - */ - public static void getDiaryComment(int teamid, int diaryid, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamid); - params.put("id", diaryid); - params.put("type", "diary"); - params.put("pageIndex", 0); - params.put("pageSize", "20"); - KJLoger.debug(teamid + "==getDiaryComment接口=" + diaryid); - ApiHttpClient - .get("action/api/team_reply_list_by_type", params, handler); - } - - /** - * 周报评论(以后可改为全局评论) - * - * @param uid - * @param teamid - * @param diaryId - * @param content - * @param handler - */ - public static void sendComment(int uid, int teamid, int diaryId, - String content, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("teamid", teamid); - params.put("type", "118"); - params.put("tweetid", diaryId); - params.put("content", content); - ApiHttpClient.post("action/api/team_tweet_reply", params, handler); - } - - /*** - * 客户端扫描二维码登陆 - * - * @author 火蚁 2015-3-13 上午11:45:47 - * - * @return void - * @param url - * @param handler - */ - public static void scanQrCodeLogin(String url, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - String uuid = url.substring(url.lastIndexOf("=") + 1); - params.put("uuid", uuid); - ApiHttpClient.getDirect(url, handler); - } - - /*** - * 使用第三方登陆 - * @param catalog 类别 - * @param openIdInfo 第三方的info - * @param handler handler - */ - public static void open_login(String catalog, String openIdInfo, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("catalog", catalog); - params.put("openid_info", openIdInfo); - ApiHttpClient.post("action/api/openid_login", params, handler); - } - - /*** - * 第三方登陆账号绑定 - * @param catalog 类别(QQ、wechat) - * @param openIdInfo 第三方info - * @param userName 用户名 - * @param pwd 密码 - * @param handler handler - */ - public static void bind_openid(String catalog, String openIdInfo, String userName, String pwd, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("catalog", catalog); - params.put("openid_info", openIdInfo); - params.put("username", userName); - params.put("pwd", pwd); - ApiHttpClient.post("action/api/openid_bind", params, handler); - } - - /*** - * 使用第三方账号注册 - * @param catalog 类别(qq、wechat) - * @param openIdInfo 第三方info - * @param handler handler - */ - public static void openid_reg(String catalog, String openIdInfo, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("catalog", catalog); - params.put("openid_info", openIdInfo); - ApiHttpClient.post("action/api/openid_reg", params, handler); - } -} diff --git a/app/src/main/java/net/oschina/app/api/remote/OSChinaTeamApi.java b/app/src/main/java/net/oschina/app/api/remote/OSChinaTeamApi.java deleted file mode 100644 index 584b19d77..000000000 --- a/app/src/main/java/net/oschina/app/api/remote/OSChinaTeamApi.java +++ /dev/null @@ -1,426 +0,0 @@ -package net.oschina.app.api.remote; - -import java.io.File; -import java.io.FileNotFoundException; - -import net.oschina.app.AppContext; -import net.oschina.app.api.ApiHttpClient; -import net.oschina.app.team.bean.TeamIssue; -import net.oschina.app.team.bean.TeamProject; -import android.text.TextUtils; - -import com.loopj.android.http.AsyncHttpResponseHandler; -import com.loopj.android.http.RequestParams; - -/** - * osc team api集合类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2015年1月14日 下午3:32:18 - * - */ -public class OSChinaTeamApi { - - /** - * 获取团队项目列表 - * - * @param teamId - * @param handler - */ - public static void getTeamProjectList(int teamId, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamId); - ApiHttpClient.get("action/api/team_project_list", params, handler); - } - - /** - * 获取team动态列表 - * - * @param teamId - * @param activeId - * @param pageIndex - * @param handler - */ - public static void getTeamCommentList(int teamId, int activeId, - int pageIndex, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamId); - params.put("id", activeId); - params.put("pageIndex", pageIndex); - params.put("pageSize", 20); - ApiHttpClient.get("action/api/team_reply_list_by_activeid", params, - handler); - } - - /*** - * 获取团队绑定项目的成员列表(包括管理员以及开发者) - * - * @author 火蚁 2015-2-5 下午6:45:41 - * - * @return void - * @param teamId - * @param teamProject - * @param handler - */ - public static void getTeamProjectMemberList(int teamId, - TeamProject teamProject, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamId); - params.put("uid", AppContext.getInstance().getLoginUid()); - params.put("projectid", teamProject.getGit().getId()); - String source = teamProject.getSource(); - if (source != null && !TextUtils.isEmpty(source)) { - - params.put("source", teamProject.getSource()); - } - ApiHttpClient.get("action/api/team_project_member_list", params, - handler); - } - - /*** - * 获取项目的动态列表 - * - * @author 火蚁 2015-3-2 下午5:18:54 - * - * @return void - * @param teamId - * @param project - * @param type - * "all"(default),"issue","code","other" - * @param page - * @param handler - */ - public static void getTeamProjectActiveList(int teamId, - TeamProject project, String type, int page, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamId); - params.put("projectid", project.getGit().getId()); - if (!TextUtils.isEmpty(project.getSource())) { - params.put("source", project.getSource()); - } - params.put("type", type); - params.put("pageIndex", page); - ApiHttpClient.get("action/api/team_project_active_list", params, - handler); - } - - /** - * 获取某项目的任务列表 - * - * @param uId - * 用户id - * @param teamId - * 团队id - * @param projectId - * 项目id(当<=0或不设置时,查询非项目的任务列表) - * @param source - * "Git@OSC","GitHub"(只有设置了projectid值,这里才需要设置该值) - */ - public static void getTeamCatalogIssueList(int uId, int teamId, - int projectId, String source, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uId); - params.put("teamid", teamId); - params.put("projectid", projectId); - params.put("source", source); - ApiHttpClient.get("action/api/team_project_catalog_list", params, - handler); - } - - /** - * 获取指定任务列表的任务列表 - * - * @param teamId - * @param projectId - * 项目id(-1获取非项目任务列表, 0获取所有任务列表) - * @param catalogId - * 任务列表的的目录id - * @param source - * "Team@OSC"(default),"Git@OSC","GitHub",如果指定了projectid的值, - * 这个值就是必须的 - * @param uid - * 如果指定该值,则获取该id用户相关的任务 - * @param state - * "all"(default),"opened","closed","outdate" - * @param scope - * "tome"(default,指派给我的任务),"meto"(我指派的任务) - * @param pageIndex - * @param pageSize - * @param handler - */ - public static void getTeamIssueList(int teamId, int projectId, - int catalogId, String source, int uid, String state, String scope, - int pageIndex, int pageSize, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamId); - params.put("projectid", projectId); - params.put("catalogid", catalogId); - params.put("source", source); - params.put("uid", uid); - params.put("state", state); - params.put("scope", scope); - params.put("pageIndex", pageIndex); - params.put("pageSize", pageSize); - ApiHttpClient.get("action/api/team_issue_list", params, handler); - } - - /*** - * 改变一个任务的状态 - * - * @author 火蚁 2015-3-6 上午11:44:01 - * - * @return void - * @param teamId - * @param issue - * @param target - * 修改的属性("state" : 状态, "assignee" 指派人, "deadline" : 截止日期) - * @param handler - */ - public static void changeIssueState(int teamId, TeamIssue issue, - String target, AsyncHttpResponseHandler handler) { - if (issue == null) - return; - RequestParams params = new RequestParams(); - params.put("uid", AppContext.getInstance().getLoginUid()); - params.put("teamid", teamId); - params.put("target", target); - params.put("issueid", issue.getId()); - if (target.equals("state")) { - params.put("state", issue.getState()); - } else if (target.equals("assignee")) { - params.put("assignee", issue.getToUser().getId()); - } else if (target.equals("deadline")) { - params.put("deadline", issue.getDeadlineTime()); - } - ApiHttpClient.post("action/api/team_issue_update", params, handler); - } - - public static void pubTeamNewIssue(RequestParams params, - AsyncHttpResponseHandler handler) { - ApiHttpClient.post("action/api/team_issue_pub", params, handler); - } - - /*** - * 获取团队的讨论区列表 - * - * @param type - * @param teamId - * @param uid - * @param pageIndex - * @param handler - */ - public static void getTeamDiscussList(String type, int teamId, int uid, - int pageIndex, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("type", type); - params.put("teamid", teamId); - params.put("uid", uid); - params.put("pageIndex", pageIndex); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/team_discuss_list", params, handler); - } - - /*** - * 获取讨论贴详情 - * - * @author 火蚁 2015-2-2 下午6:19:54 - * - * @return void - * @param teamId - * @param discussId - * @param handler - */ - public static void getTeamDiscussDetail(int teamId, int discussId, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamId); - params.put("discussid", discussId); - ApiHttpClient.get("action/api/team_discuss_detail", params, handler); - } - - /*** - * 发表讨论贴评论 - * - * @author 火蚁 2015-2-3 下午2:42:54 - * - * @return void - * @param uid - * @param teamId - * @param dicussId - * @param content - * @param handler - */ - public static void pubTeamDiscussReply(int uid, int teamId, int discussId, - String content, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("teamid", teamId); - params.put("discussid", discussId); - params.put("content", content); - ApiHttpClient.post("action/api/team_discuss_reply", params, handler); - } - - /*** - * 发表一条综合评论 动态、分享内容、周报 - * - * @author 火蚁 2015-3-6 下午3:31:07 - * - * @return void - * @param teamId - * @param type - * 普通动态-110,分享内容-114, 周报-118 - * @param tweetId - * @param content - * @param handler - */ - public static void pubTeamTweetReply(int teamId, int type, long tweetId, - String content, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", AppContext.getInstance().getLoginUid()); - params.put("type", type); - params.put("teamid", teamId); - params.put("tweetid", tweetId); - params.put("content", content); - ApiHttpClient.post("action/api/team_tweet_reply", params, handler); - } - - /*** - * 获取团队任务详情 - * - * @author 火蚁 2015-1-27 下午7:47:17 - * - */ - public static void getTeamIssueDetail(int teamId, int issueId, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamId); - params.put("issueid", issueId); - ApiHttpClient.get("action/api/team_issue_detail", params, handler); - } - - /*** - * 获取团队的周报列表 - * - * @param uid - * @param teamId - * @param year - * @param week - * @param pageIndex - * @param handler - */ - public static void getTeamDiaryList(int uid, int teamId, int year, - int week, int pageIndex, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", uid); - params.put("teamid", teamId); - params.put("year", year); - params.put("week", week); - params.put("pageIndex", pageIndex); - params.put("pageSize", AppContext.PAGE_SIZE); - ApiHttpClient.get("action/api/team_diary_list", params, handler); - } - - /*** - * 任务、周报、讨论的回复列表 - * - * @author 火蚁 2015-2-2 上午11:39:04 - * - * @return void - * @param teamId - * @param id - * @param type - * 评论列表的类型(周报diary,讨论discuss,任务issue) - * @param pageIndex - * @param handler - */ - public static void getTeamReplyList(int teamId, int id, String type, - int pageIndex, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamId); - params.put("id", id); - params.put("type", type); - params.put("pageIndex", pageIndex); - ApiHttpClient - .get("action/api/team_reply_list_by_type", params, handler); - - } - - /*** - * 发表一个新的团队动态 - * - * @author 火蚁 2015-3-9 下午2:46:13 - * - * @return void - * @param teamId - * @param content - * @param img - * @param handler - */ - public static void pubTeamNewActive(int teamId, String content, File img, - AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("teamid", teamId); - params.put("uid", AppContext.getInstance().getLoginUid()); - params.put("msg", content); - params.put("appid", 3); - if (img != null) { - - try { - params.put("img", img); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - } - ApiHttpClient.post("action/api/team_tweet_pub", params, handler); - } - - /*** - * 更新子任务属性 - * - * @author 火蚁 2015-3-10 下午4:53:49 - * - * @return void - * @param teamId - * @param target - * @param childIssue - * @param handler - */ - public static void updateChildIssue(int teamId, String target, - TeamIssue childIssue, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", AppContext.getInstance().getLoginUid()); - params.put("teamid", teamId); - params.put("childissueid", childIssue.getId()); - params.put("target", target); - if (target.equals("state")) { - params.put("state", childIssue.getState()); - } else { - params.put("title", childIssue.getTitle()); - } - ApiHttpClient.post("action/api/team_issue_update_child_issue", params, - handler); - } - - /*** - * 发表任务评论 - * - * @author 火蚁 2015-3-13 下午6:22:41 - * - * @return void - * @param teamId - * @param issueId - * @param content - * @param handler - */ - public static void pubTeamIssueReply(int teamId, int issueId, - String content, AsyncHttpResponseHandler handler) { - RequestParams params = new RequestParams(); - params.put("uid", AppContext.getInstance().getLoginUid()); - params.put("teamid", teamId); - params.put("content", content); - params.put("issueid", issueId); - ApiHttpClient.post("action/api/team_issue_reply", params, handler); - } -} diff --git a/app/src/main/java/net/oschina/app/base/BaseActivity.java b/app/src/main/java/net/oschina/app/base/BaseActivity.java deleted file mode 100644 index 99c32cd58..000000000 --- a/app/src/main/java/net/oschina/app/base/BaseActivity.java +++ /dev/null @@ -1,217 +0,0 @@ -package net.oschina.app.base; - -import android.app.ProgressDialog; -import android.os.Bundle; -import android.support.v7.app.ActionBar; -import android.support.v7.app.ActionBarActivity; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.TextView; - -import net.oschina.app.AppContext; -import net.oschina.app.AppManager; -import net.oschina.app.R; -import net.oschina.app.interf.BaseViewInterface; -import net.oschina.app.ui.dialog.CommonToast; -import net.oschina.app.ui.dialog.DialogControl; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.TDevice; - -import org.kymjs.kjframe.utils.StringUtils; - -import butterknife.ButterKnife; - -/** - * baseActionBar Activity - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年9月25日 上午11:30:15 引用自:tonlin - */ -public abstract class BaseActivity extends ActionBarActivity implements - DialogControl, View.OnClickListener, BaseViewInterface { - public static final String INTENT_ACTION_EXIT_APP = "INTENT_ACTION_EXIT_APP"; - - private boolean _isVisible; - private ProgressDialog _waitDialog; - - protected LayoutInflater mInflater; - protected ActionBar mActionBar; - private TextView mTvActionTitle; - - @Override - protected void onDestroy() { - super.onDestroy(); - TDevice.hideSoftKeyboard(getCurrentFocus()); - ButterKnife.reset(this); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (AppContext.getNightModeSwitch()) { - setTheme(R.style.AppBaseTheme_Night); - } else { - setTheme(R.style.AppBaseTheme_Light); - } - AppManager.getAppManager().addActivity(this); - if (!hasActionBar()) { - // supportRequestWindowFeature(Window.FEATURE_NO_TITLE); - } - onBeforeSetContentLayout(); - if (getLayoutId() != 0) { - setContentView(getLayoutId()); - } - mActionBar = getSupportActionBar(); - mInflater = getLayoutInflater(); - if (hasActionBar()) { - initActionBar(mActionBar); - } - - // 通过注解绑定控件 - ButterKnife.inject(this); - - init(savedInstanceState); - initView(); - initData(); - _isVisible = true; - } - - protected void onBeforeSetContentLayout() {} - - protected boolean hasActionBar() { - return true; - } - - protected int getLayoutId() { - return 0; - } - - protected View inflateView(int resId) { - return mInflater.inflate(resId, null); - } - - protected int getActionBarTitle() { - return R.string.app_name; - } - - protected boolean hasBackButton() { - return false; - } - - protected void init(Bundle savedInstanceState) {} - - protected void initActionBar(ActionBar actionBar) { - if (actionBar == null) - return; - if (hasBackButton()) { - mActionBar.setDisplayHomeAsUpEnabled(true); - mActionBar.setHomeButtonEnabled(true); - } else { - actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE); - actionBar.setDisplayUseLogoEnabled(false); - int titleRes = getActionBarTitle(); - if (titleRes != 0) { - actionBar.setTitle(titleRes); - } - } - } - - public void setActionBarTitle(int resId) { - if (resId != 0) { - setActionBarTitle(getString(resId)); - } - } - - public void setActionBarTitle(String title) { - if (StringUtils.isEmpty(title)) { - title = getString(R.string.app_name); - } - if (hasActionBar() && mActionBar != null) { - if (mTvActionTitle != null) { - mTvActionTitle.setText(title); - } - mActionBar.setTitle(title); - } - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - onBackPressed(); - break; - - default: - break; - } - return super.onOptionsItemSelected(item); - } - - @Override - protected void onPause() { - super.onPause(); - } - - @Override - protected void onResume() { - super.onResume(); - } - - public void showToast(int msgResid, int icon, int gravity) { - showToast(getString(msgResid), icon, gravity); - } - - public void showToast(String message, int icon, int gravity) { - CommonToast toast = new CommonToast(this); - toast.setMessage(message); - toast.setMessageIc(icon); - toast.setLayoutGravity(gravity); - toast.show(); - } - - @Override - public ProgressDialog showWaitDialog() { - return showWaitDialog(R.string.loading); - } - - @Override - public ProgressDialog showWaitDialog(int resid) { - return showWaitDialog(getString(resid)); - } - - @Override - public ProgressDialog showWaitDialog(String message) { - if (_isVisible) { - if (_waitDialog == null) { - _waitDialog = DialogHelp.getWaitDialog(this, message); - } - if (_waitDialog != null) { - _waitDialog.setMessage(message); - _waitDialog.show(); - } - return _waitDialog; - } - return null; - } - - @Override - public void hideWaitDialog() { - if (_isVisible && _waitDialog != null) { - try { - _waitDialog.dismiss(); - _waitDialog = null; - } catch (Exception ex) { - ex.printStackTrace(); - } - } - } - - @Override - public boolean onMenuOpened(int featureId, Menu menu) { - - // setOverflowIconVisible(featureId, menu); - return super.onMenuOpened(featureId, menu); - } -} diff --git a/app/src/main/java/net/oschina/app/base/BaseApplication.java b/app/src/main/java/net/oschina/app/base/BaseApplication.java deleted file mode 100644 index 975c33f79..000000000 --- a/app/src/main/java/net/oschina/app/base/BaseApplication.java +++ /dev/null @@ -1,264 +0,0 @@ -package net.oschina.app.base; - -import android.annotation.SuppressLint; -import android.annotation.TargetApi; -import android.app.Activity; -import android.app.Application; -import android.content.Context; -import android.content.SharedPreferences; -import android.content.SharedPreferences.Editor; -import android.content.res.Resources; -import android.os.Build; -import android.util.DisplayMetrics; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; -import android.widget.Toast; - -import net.oschina.app.R; -import net.oschina.app.util.StringUtils; - -@SuppressLint("InflateParams") -public class BaseApplication extends Application { - private static String PREF_NAME = "creativelocker.pref"; - private static String LAST_REFRESH_TIME = "last_refresh_time.pref"; - static Context _context; - static Resources _resource; - private static String lastToast = ""; - private static long lastToastTime; - - private static boolean sIsAtLeastGB; - - static { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { - sIsAtLeastGB = true; - } - } - - @Override - public void onCreate() { - super.onCreate(); - _context = getApplicationContext(); - _resource = _context.getResources(); - } - - public static synchronized BaseApplication context() { - return (BaseApplication) _context; - } - - public static Resources resources() { - return _resource; - } - - /** - * 放入已读文章列表中 - * - */ - public static void putReadedPostList(String prefFileName, String key, - String value) { - SharedPreferences preferences = getPreferences(prefFileName); - int size = preferences.getAll().size(); - Editor editor = preferences.edit(); - if (size >= 100) { - editor.clear(); - } - editor.putString(key, value); - apply(editor); - } - - /** - * 读取是否是已读的文章列表 - * - * @return - */ - public static boolean isOnReadedPostList(String prefFileName, String key) { - return getPreferences(prefFileName).contains(key); - } - - /** - * 记录列表上次刷新时间 - * - * @param key - * @param value - * @return void - * @author 火蚁 - * 2015-2-9 下午2:21:37 - */ - public static void putToLastRefreshTime(String key, String value) { - SharedPreferences preferences = getPreferences(LAST_REFRESH_TIME); - Editor editor = preferences.edit(); - editor.putString(key, value); - apply(editor); - } - - /** - * 获取列表的上次刷新时间 - * - * @param key - * @return - * @author 火蚁 - * 2015-2-9 下午2:22:04 - */ - public static String getLastRefreshTime(String key) { - return getPreferences(LAST_REFRESH_TIME).getString(key, StringUtils.getCurTimeStr()); - } - - @TargetApi(Build.VERSION_CODES.GINGERBREAD) - public static void apply(SharedPreferences.Editor editor) { - if (sIsAtLeastGB) { - editor.apply(); - } else { - editor.commit(); - } - } - - public static void set(String key, int value) { - Editor editor = getPreferences().edit(); - editor.putInt(key, value); - apply(editor); - } - - public static void set(String key, boolean value) { - Editor editor = getPreferences().edit(); - editor.putBoolean(key, value); - apply(editor); - } - - public static void set(String key, String value) { - Editor editor = getPreferences().edit(); - editor.putString(key, value); - apply(editor); - } - - public static boolean get(String key, boolean defValue) { - return getPreferences().getBoolean(key, defValue); - } - - public static String get(String key, String defValue) { - return getPreferences().getString(key, defValue); - } - - public static int get(String key, int defValue) { - return getPreferences().getInt(key, defValue); - } - - public static long get(String key, long defValue) { - return getPreferences().getLong(key, defValue); - } - - public static float get(String key, float defValue) { - return getPreferences().getFloat(key, defValue); - } - - @TargetApi(Build.VERSION_CODES.HONEYCOMB) - public static SharedPreferences getPreferences() { - SharedPreferences pre = context().getSharedPreferences(PREF_NAME, - Context.MODE_MULTI_PROCESS); - return pre; - } - - @TargetApi(Build.VERSION_CODES.HONEYCOMB) - public static SharedPreferences getPreferences(String prefName) { - return context().getSharedPreferences(prefName, - Context.MODE_MULTI_PROCESS); - } - - public static int[] getDisplaySize() { - return new int[]{getPreferences().getInt("screen_width", 480), - getPreferences().getInt("screen_height", 854)}; - } - - public static void saveDisplaySize(Activity activity) { - DisplayMetrics displaymetrics = new DisplayMetrics(); - activity.getWindowManager().getDefaultDisplay() - .getMetrics(displaymetrics); - SharedPreferences.Editor editor = getPreferences().edit(); - editor.putInt("screen_width", displaymetrics.widthPixels); - editor.putInt("screen_height", displaymetrics.heightPixels); - editor.putFloat("density", displaymetrics.density); - editor.commit(); - } - - public static String string(int id) { - return _resource.getString(id); - } - - public static String string(int id, Object... args) { - return _resource.getString(id, args); - } - - public static void showToast(int message) { - showToast(message, Toast.LENGTH_LONG, 0); - } - - public static void showToast(String message) { - showToast(message, Toast.LENGTH_LONG, 0, Gravity.BOTTOM); - } - - public static void showToast(int message, int icon) { - showToast(message, Toast.LENGTH_LONG, icon); - } - - public static void showToast(String message, int icon) { - showToast(message, Toast.LENGTH_LONG, icon, Gravity.BOTTOM); - } - - public static void showToastShort(int message) { - showToast(message, Toast.LENGTH_SHORT, 0); - } - - public static void showToastShort(String message) { - showToast(message, Toast.LENGTH_SHORT, 0, Gravity.BOTTOM); - } - - public static void showToastShort(int message, Object... args) { - showToast(message, Toast.LENGTH_SHORT, 0, Gravity.BOTTOM, args); - } - - public static void showToast(int message, int duration, int icon) { - showToast(message, duration, icon, Gravity.BOTTOM); - } - - public static void showToast(int message, int duration, int icon, - int gravity) { - showToast(context().getString(message), duration, icon, gravity); - } - - public static void showToast(int message, int duration, int icon, - int gravity, Object... args) { - showToast(context().getString(message, args), duration, icon, gravity); - } - - public static void showToast(String message, int duration, int icon, - int gravity) { - if (message != null && !message.equalsIgnoreCase("")) { - long time = System.currentTimeMillis(); - if (!message.equalsIgnoreCase(lastToast) - || Math.abs(time - lastToastTime) > 2000) { - View view = LayoutInflater.from(context()).inflate( - R.layout.view_toast, null); - ((TextView) view.findViewById(R.id.title_tv)).setText(message); - if (icon != 0) { - ((ImageView) view.findViewById(R.id.icon_iv)) - .setImageResource(icon); - ((ImageView) view.findViewById(R.id.icon_iv)) - .setVisibility(View.VISIBLE); - } - Toast toast = new Toast(context()); - toast.setView(view); - if (gravity == Gravity.CENTER) { - toast.setGravity(gravity, 0, 0); - } else { - toast.setGravity(gravity, 0, 35); - } - - toast.setDuration(duration); - toast.show(); - lastToast = message; - lastToastTime = System.currentTimeMillis(); - } - } - } -} diff --git a/app/src/main/java/net/oschina/app/base/BaseFragment.java b/app/src/main/java/net/oschina/app/base/BaseFragment.java deleted file mode 100644 index 73caa6d8b..000000000 --- a/app/src/main/java/net/oschina/app/base/BaseFragment.java +++ /dev/null @@ -1,119 +0,0 @@ -package net.oschina.app.base; - -import android.app.ProgressDialog; -import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentActivity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.interf.BaseFragmentInterface; -import net.oschina.app.ui.dialog.DialogControl; - -/** - * 碎片基类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年9月25日 上午11:18:46 - * - */ -public class BaseFragment extends Fragment implements - android.view.View.OnClickListener, BaseFragmentInterface { - public static final int STATE_NONE = 0; - public static final int STATE_REFRESH = 1; - public static final int STATE_LOADMORE = 2; - public static final int STATE_NOMORE = 3; - public static final int STATE_PRESSNONE = 4;// 正在下拉但还没有到刷新的状态 - public static int mState = STATE_NONE; - - protected LayoutInflater mInflater; - - public AppContext getApplication() { - return (AppContext) getActivity().getApplication(); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - this.mInflater = inflater; - View view = super.onCreateView(inflater, container, savedInstanceState); - return view; - } - - @Override - public void onResume() { - super.onResume(); - } - - @Override - public void onPause() { - super.onPause(); - } - - @Override - public void onDestroy() { - super.onDestroy(); - } - - protected int getLayoutId() { - return 0; - } - - protected View inflateView(int resId) { - return this.mInflater.inflate(resId, null); - } - - public boolean onBackPressed() { - return false; - } - - protected void hideWaitDialog() { - FragmentActivity activity = getActivity(); - if (activity instanceof DialogControl) { - ((DialogControl) activity).hideWaitDialog(); - } - } - - protected ProgressDialog showWaitDialog() { - return showWaitDialog(R.string.loading); - } - - protected ProgressDialog showWaitDialog(int resid) { - FragmentActivity activity = getActivity(); - if (activity instanceof DialogControl) { - return ((DialogControl) activity).showWaitDialog(resid); - } - return null; - } - - protected ProgressDialog showWaitDialog(String str) { - FragmentActivity activity = getActivity(); - if (activity instanceof DialogControl) { - return ((DialogControl) activity).showWaitDialog(str); - } - return null; - } - - @Override - public void initView(View view) { - - } - - @Override - public void initData() { - - } - - @Override - public void onClick(View v) { - - } -} diff --git a/app/src/main/java/net/oschina/app/base/BaseListFragment.java b/app/src/main/java/net/oschina/app/base/BaseListFragment.java deleted file mode 100644 index f7790bbee..000000000 --- a/app/src/main/java/net/oschina/app/base/BaseListFragment.java +++ /dev/null @@ -1,606 +0,0 @@ -package net.oschina.app.base; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.os.AsyncTask; -import android.os.Bundle; -import android.support.v4.widget.SwipeRefreshLayout; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AbsListView; -import android.widget.AbsListView.OnScrollListener; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.ListView; -import android.widget.TextView; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.bean.Entity; -import net.oschina.app.bean.ListEntity; -import net.oschina.app.bean.Result; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.cache.CacheManager; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.ThemeSwitchUtils; -import net.oschina.app.util.XmlUtils; - -import cz.msebera.android.httpclient.Header; -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.io.Serializable; -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.List; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -@SuppressLint("NewApi") -public abstract class BaseListFragment extends BaseFragment - implements SwipeRefreshLayout.OnRefreshListener, OnItemClickListener, - OnScrollListener { - - public static final String BUNDLE_KEY_CATALOG = "BUNDLE_KEY_CATALOG"; - - @InjectView(R.id.swiperefreshlayout) - protected SwipeRefreshLayout mSwipeRefreshLayout; - - @InjectView(R.id.listview) - protected ListView mListView; - - protected ListBaseAdapter mAdapter; - - @InjectView(R.id.error_layout) - protected EmptyLayout mErrorLayout; - - protected int mStoreEmptyState = -1; - - protected int mCurrentPage = 0; - - protected int mCatalog = 1; - // 错误信息 - protected Result mResult; - - private AsyncTask> mCacheTask; - private ParserTask mParserTask; - - @Override - protected int getLayoutId() { - return R.layout.fragment_pull_refresh_listview; - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View view = inflater.inflate(getLayoutId(), container, false); - return view; - } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - ButterKnife.inject(this, view); - initView(view); - } - - @Override - public void onCreate(android.os.Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Bundle args = getArguments(); - if (args != null) { - mCatalog = args.getInt(BUNDLE_KEY_CATALOG, 0); - } - } - - @Override - public void initView(View view) { - mSwipeRefreshLayout.setOnRefreshListener(this); - mSwipeRefreshLayout.setColorSchemeResources( - R.color.swiperefresh_color1, R.color.swiperefresh_color2, - R.color.swiperefresh_color3, R.color.swiperefresh_color4); - - mErrorLayout.setOnLayoutClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - mCurrentPage = 0; - mState = STATE_REFRESH; - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - requestData(true); - } - }); - - mListView.setOnItemClickListener(this); - mListView.setOnScrollListener(this); - - if (mAdapter != null) { - mListView.setAdapter(mAdapter); - mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - } else { - mAdapter = getListAdapter(); - mListView.setAdapter(mAdapter); - - if (requestDataIfViewCreated()) { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - mState = STATE_NONE; - requestData(false); - } else { - mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - } - - } - if (mStoreEmptyState != -1) { - mErrorLayout.setErrorType(mStoreEmptyState); - } - } - - @Override - public void onDestroyView() { - mStoreEmptyState = mErrorLayout.getErrorState(); - super.onDestroyView(); - } - - @Override - public void onDestroy() { - cancelReadCacheTask(); - cancelParserTask(); - super.onDestroy(); - } - - protected abstract ListBaseAdapter getListAdapter(); - - // 下拉刷新数据 - @Override - public void onRefresh() { - if (mState == STATE_REFRESH) { - return; - } - // 设置顶部正在刷新 - mListView.setSelection(0); - setSwipeRefreshLoadingState(); - mCurrentPage = 0; - mState = STATE_REFRESH; - requestData(true); - } - - protected boolean requestDataIfViewCreated() { - return true; - } - - protected String getCacheKeyPrefix() { - return null; - } - - protected ListEntity parseList(InputStream is) throws Exception { - return null; - } - - protected ListEntity readList(Serializable seri) { - return null; - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) {} - - private String getCacheKey() { - return new StringBuilder(getCacheKeyPrefix()).append("_") - .append(mCurrentPage).toString(); - } - - // 是否需要自动刷新 - protected boolean needAutoRefresh() { - return true; - } - - /*** - * 获取列表数据 - * - * - * @author 火蚁 2015-2-9 下午3:16:12 - * - * @return void - * @param refresh - */ - protected void requestData(boolean refresh) { - String key = getCacheKey(); - if (isReadCacheData(refresh)) { - readCacheData(key); - } else { - // 取新的数据 - sendRequestData(); - } - } - - /*** - * 判断是否需要读取缓存的数据 - * - * @author 火蚁 2015-2-10 下午2:41:02 - * - * @return boolean - * @param refresh - * @return - */ - protected boolean isReadCacheData(boolean refresh) { - String key = getCacheKey(); - if (!TDevice.hasInternet()) { - return true; - } - // 第一页若不是主动刷新,缓存存在,优先取缓存的 - if (CacheManager.isExistDataCache(getActivity(), key) && !refresh - && mCurrentPage == 0) { - return true; - } - // 其他页数的,缓存存在以及还没有失效,优先取缓存的 - if (CacheManager.isExistDataCache(getActivity(), key) - && !CacheManager.isCacheDataFailure(getActivity(), key) - && mCurrentPage != 0) { - return true; - } - - return false; - } - - // 是否到时间去刷新数据了 - private boolean onTimeRefresh() { - String lastRefreshTime = AppContext.getLastRefreshTime(getCacheKey()); - String currTime = StringUtils.getCurTimeStr(); - long diff = StringUtils.calDateDifferent(lastRefreshTime, currTime); - return needAutoRefresh() && diff > getAutoRefreshTime(); - } - - /*** - * 自动刷新的时间 - * - * 默认:自动刷新的时间为半天时间 - * - * @author 火蚁 2015-2-9 下午5:55:11 - * - * @return long - * @return - */ - protected long getAutoRefreshTime() { - return 12 * 60 * 60; - } - - @Override - public void onResume() { - super.onResume(); - if (onTimeRefresh()) { - onRefresh(); - } - } - - protected void sendRequestData() {} - - private void readCacheData(String cacheKey) { - cancelReadCacheTask(); - mCacheTask = new CacheTask(getActivity()).execute(cacheKey); - } - - private void cancelReadCacheTask() { - if (mCacheTask != null) { - mCacheTask.cancel(true); - mCacheTask = null; - } - } - - private class CacheTask extends AsyncTask> { - private final WeakReference mContext; - - private CacheTask(Context context) { - mContext = new WeakReference(context); - } - - @Override - protected ListEntity doInBackground(String... params) { - Serializable seri = CacheManager.readObject(mContext.get(), - params[0]); - if (seri == null) { - return null; - } else { - return readList(seri); - } - } - - @Override - protected void onPostExecute(ListEntity list) { - super.onPostExecute(list); - if (list != null) { - executeOnLoadDataSuccess(list.getList()); - } else { - executeOnLoadDataError(null); - } - executeOnLoadFinish(); - } - } - - private class SaveCacheTask extends AsyncTask { - private final WeakReference mContext; - private final Serializable seri; - private final String key; - - private SaveCacheTask(Context context, Serializable seri, String key) { - mContext = new WeakReference(context); - this.seri = seri; - this.key = key; - } - - @Override - protected Void doInBackground(Void... params) { - CacheManager.saveObject(mContext.get(), seri, key); - return null; - } - } - - protected AsyncHttpResponseHandler mHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int statusCode, Header[] headers, - byte[] responseBytes) { - if (mCurrentPage == 0 && needAutoRefresh()) { - AppContext.putToLastRefreshTime(getCacheKey(), - StringUtils.getCurTimeStr()); - } - if (isAdded()) { - if (mState == STATE_REFRESH) { - onRefreshNetworkSuccess(); - } - executeParserTask(responseBytes); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - if (isAdded()) { - readCacheData(getCacheKey()); - } - } - }; - - protected void executeOnLoadDataSuccess(List data) { - if (data == null) { - data = new ArrayList(); - } - - if (mResult != null && !mResult.OK()) { - AppContext.showToast(mResult.getErrorMessage()); - // 注销登陆,密码已经修改,cookie,失效了 - AppContext.getInstance().Logout(); - } - - mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - if (mCurrentPage == 0) { - mAdapter.clear(); - } - - for (int i = 0; i < data.size(); i++) { - if (compareTo(mAdapter.getData(), data.get(i))) { - data.remove(i); - i--; - } - } - int adapterState = ListBaseAdapter.STATE_EMPTY_ITEM; - if ((mAdapter.getCount() + data.size()) == 0) { - adapterState = ListBaseAdapter.STATE_EMPTY_ITEM; - } else if (data.size() == 0 - || (data.size() < getPageSize() && mCurrentPage == 0)) { - adapterState = ListBaseAdapter.STATE_NO_MORE; - mAdapter.notifyDataSetChanged(); - } else { - adapterState = ListBaseAdapter.STATE_LOAD_MORE; - } - mAdapter.setState(adapterState); - mAdapter.addData(data); - // 判断等于是因为最后有一项是listview的状态 - if (mAdapter.getCount() == 1) { - - if (needShowEmptyNoData()) { - mErrorLayout.setErrorType(EmptyLayout.NODATA); - } else { - mAdapter.setState(ListBaseAdapter.STATE_EMPTY_ITEM); - mAdapter.notifyDataSetChanged(); - } - } - } - - /** - * 是否需要隐藏listview,显示无数据状态 - * - * @author 火蚁 2015-1-27 下午6:18:59 - * - */ - protected boolean needShowEmptyNoData() { - return true; - } - - protected boolean compareTo(List data, Entity enity) { - int s = data.size(); - if (enity != null) { - for (int i = 0; i < s; i++) { - if (enity.getId() == data.get(i).getId()) { - return true; - } - } - } - return false; - } - - protected int getPageSize() { - return AppContext.PAGE_SIZE; - } - - protected void onRefreshNetworkSuccess() {} - - protected void executeOnLoadDataError(String error) { - if (mCurrentPage == 0 - && !CacheManager.isExistDataCache(getActivity(), getCacheKey())) { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - } else { - - //在无网络时,滚动到底部时,mCurrentPage先自加了,然而在失败时却 - //没有减回来,如果刻意在无网络的情况下上拉,可以出现漏页问题 - //find by TopJohn - mCurrentPage--; - - mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - mAdapter.setState(ListBaseAdapter.STATE_NETWORK_ERROR); - mAdapter.notifyDataSetChanged(); - } - } - - // 完成刷新 - protected void executeOnLoadFinish() { - setSwipeRefreshLoadedState(); - mState = STATE_NONE; - } - - /** 设置顶部正在加载的状态 */ - protected void setSwipeRefreshLoadingState() { - if (mSwipeRefreshLayout != null) { - mSwipeRefreshLayout.setRefreshing(true); - // 防止多次重复刷新 - mSwipeRefreshLayout.setEnabled(false); - } - } - - /** 设置顶部加载完毕的状态 */ - protected void setSwipeRefreshLoadedState() { - if (mSwipeRefreshLayout != null) { - mSwipeRefreshLayout.setRefreshing(false); - mSwipeRefreshLayout.setEnabled(true); - } - } - - private void executeParserTask(byte[] data) { - cancelParserTask(); - mParserTask = new ParserTask(data); - mParserTask.execute(); - } - - private void cancelParserTask() { - if (mParserTask != null) { - mParserTask.cancel(true); - mParserTask = null; - } - } - - class ParserTask extends AsyncTask { - - private final byte[] reponseData; - private boolean parserError; - private List list; - - public ParserTask(byte[] data) { - this.reponseData = data; - } - - @Override - protected String doInBackground(Void... params) { - try { - ListEntity data = parseList(new ByteArrayInputStream( - reponseData)); - new SaveCacheTask(getActivity(), data, getCacheKey()).execute(); - list = data.getList(); - if (list == null) { - ResultBean resultBean = XmlUtils.toBean(ResultBean.class, - reponseData); - if (resultBean != null) { - mResult = resultBean.getResult(); - } - } - } catch (Exception e) { - e.printStackTrace(); - - parserError = true; - } - return null; - } - - @Override - protected void onPostExecute(String result) { - super.onPostExecute(result); - if (parserError) { - readCacheData(getCacheKey()); - } else { - executeOnLoadDataSuccess(list); - executeOnLoadFinish(); - } - } - } - - @Override - public void onScrollStateChanged(AbsListView view, int scrollState) { - if (mAdapter == null || mAdapter.getCount() == 0) { - return; - } - // 数据已经全部加载,或数据为空时,或正在加载,不处理滚动事件 - if (mState == STATE_LOADMORE || mState == STATE_REFRESH) { - return; - } - // 判断是否滚动到底部 - boolean scrollEnd = false; - try { - if (view.getPositionForView(mAdapter.getFooterView()) == view - .getLastVisiblePosition()) - scrollEnd = true; - } catch (Exception e) { - scrollEnd = false; - } - - if (mState == STATE_NONE && scrollEnd) { - if (mAdapter.getState() == ListBaseAdapter.STATE_LOAD_MORE - || mAdapter.getState() == ListBaseAdapter.STATE_NETWORK_ERROR) { - mCurrentPage++; - mState = STATE_LOADMORE; - requestData(false); - mAdapter.setFooterViewLoading(); - } - } - } - - @Override - public void onScroll(AbsListView view, int firstVisibleItem, - int visibleItemCount, int totalItemCount) { - // 数据已经全部加载,或数据为空时,或正在加载,不处理滚动事件 - // if (mState == STATE_NOMORE || mState == STATE_LOADMORE - // || mState == STATE_REFRESH) { - // return; - // } - // if (mAdapter != null - // && mAdapter.getDataSize() > 0 - // && mListView.getLastVisiblePosition() == (mListView.getCount() - 1)) - // { - // if (mState == STATE_NONE - // && mAdapter.getState() == ListBaseAdapter.STATE_LOAD_MORE) { - // mState = STATE_LOADMORE; - // mCurrentPage++; - // requestData(true); - // } - // } - } - - /** - * 保存已读的文章列表 - * - * @param view - * @param prefFileName - * @param key - */ - protected void saveToReadedList(final View view, final String prefFileName, - final String key) { - // 放入已读列表 - AppContext.putReadedPostList(prefFileName, key, "true"); - TextView tvTitle = (TextView) view.findViewById(R.id.tv_title); - if (tvTitle != null) { - tvTitle.setTextColor(AppContext.getInstance().getResources().getColor(ThemeSwitchUtils.getTitleReadedColor())); - } - } -} diff --git a/app/src/main/java/net/oschina/app/base/BaseNewActivity.java b/app/src/main/java/net/oschina/app/base/BaseNewActivity.java deleted file mode 100644 index 77a7283ae..000000000 --- a/app/src/main/java/net/oschina/app/base/BaseNewActivity.java +++ /dev/null @@ -1,11 +0,0 @@ -package net.oschina.app.base; - -import android.support.v7.app.AppCompatActivity; - -/** - * Created by 火蚁 on 15/5/18. - */ -public class BaseNewActivity extends AppCompatActivity { - - -} diff --git a/app/src/main/java/net/oschina/app/base/BaseViewPagerFragment.java b/app/src/main/java/net/oschina/app/base/BaseViewPagerFragment.java deleted file mode 100644 index f7b55f2c5..000000000 --- a/app/src/main/java/net/oschina/app/base/BaseViewPagerFragment.java +++ /dev/null @@ -1,65 +0,0 @@ -package net.oschina.app.base; - -import net.oschina.app.R; -import net.oschina.app.adapter.ViewPageFragmentAdapter; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.widget.PagerSlidingTabStrip; -import android.os.Bundle; -import android.support.v4.view.ViewPager; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -/** - * 带有导航条的基类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年11月6日 下午4:59:50 - * - */ -public abstract class BaseViewPagerFragment extends BaseFragment { - - protected PagerSlidingTabStrip mTabStrip; - protected ViewPager mViewPager; - protected ViewPageFragmentAdapter mTabsAdapter; - protected EmptyLayout mErrorLayout; - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - return inflater.inflate(R.layout.base_viewpage_fragment, null); - } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - mTabStrip = (PagerSlidingTabStrip) view - .findViewById(R.id.pager_tabstrip); - - mViewPager = (ViewPager) view.findViewById(R.id.pager); - - mErrorLayout = (EmptyLayout) view.findViewById(R.id.error_layout); - - mTabsAdapter = new ViewPageFragmentAdapter(getChildFragmentManager(), - mTabStrip, mViewPager); - setScreenPageLimit(); - onSetupTabAdapter(mTabsAdapter); - // if (savedInstanceState != null) { - // int pos = savedInstanceState.getInt("position"); - // mViewPager.setCurrentItem(pos, true); - // } - } - - protected void setScreenPageLimit() { - } - - // @Override - // public void onSaveInstanceState(Bundle outState) { - // //No call for super(). Bug on API Level > 11. - // if (outState != null && mViewPager != null) { - // outState.putInt("position", mViewPager.getCurrentItem()); - // } - // //super.onSaveInstanceState(outState); - // } - - protected abstract void onSetupTabAdapter(ViewPageFragmentAdapter adapter); -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/base/BeseHaveHeaderListFragment.java b/app/src/main/java/net/oschina/app/base/BeseHaveHeaderListFragment.java deleted file mode 100644 index b4a85e125..000000000 --- a/app/src/main/java/net/oschina/app/base/BeseHaveHeaderListFragment.java +++ /dev/null @@ -1,178 +0,0 @@ -package net.oschina.app.base; - -import java.io.ByteArrayInputStream; -import java.io.Serializable; -import java.lang.ref.WeakReference; - -import net.oschina.app.bean.Entity; -import net.oschina.app.cache.CacheManager; -import net.oschina.app.ui.empty.EmptyLayout; - -import cz.msebera.android.httpclient.Header; - -import android.app.Activity; -import android.content.Context; -import android.os.AsyncTask; -import android.os.Bundle; -import android.view.View; -import butterknife.ButterKnife; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -/** - * 需要加入header的BaseListFragment - * - * @desc 应用场景:如动弹详情、团队任务详情这些, 即是头部显示详情,然后下面显示评论列表的 - * - * BeseHaveHeaderListFragment.java - * - * @author 火蚁(http://my.oschina.net/u/253900) - * - * @data 2015-1-27 下午3:02:42 - */ -public abstract class BeseHaveHeaderListFragment - extends BaseListFragment { - - protected T2 detailBean;// list 头部的详情实体类 - - protected Activity aty; - - protected final AsyncHttpResponseHandler mDetailHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - if (arg2 != null) { - T2 detail = getDetailBean(new ByteArrayInputStream(arg2)); - if (detail != null) { - requstListData(); - executeOnLoadDetailSuccess(detail); - new SaveCacheTask(getActivity(), detail, - getDetailCacheKey()).execute(); - } else { - onFailure(arg0, arg1, arg2, null); - } - } else { - throw new RuntimeException("load detail error"); - } - } catch (Exception e) { - e.printStackTrace(); - onFailure(arg0, arg1, arg2, e); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - readDetailCacheData(getDetailCacheKey()); - } - }; - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - // 通过注解绑定控件 - ButterKnife.inject(this, view); - mListView.addHeaderView(initHeaderView()); - aty = getActivity(); - super.initView(view); - requestDetailData(isRefresh()); - } - - protected boolean isRefresh() { - return false; - } - - protected abstract void requestDetailData(boolean isRefresh); - - protected abstract View initHeaderView(); - - protected abstract String getDetailCacheKey(); - - protected abstract void executeOnLoadDetailSuccess(T2 detailBean); - - protected abstract T2 getDetailBean(ByteArrayInputStream is); - - @Override - protected boolean requestDataIfViewCreated() { - return false; - } - - private void requstListData() { - mState = STATE_REFRESH; - mAdapter.setState(ListBaseAdapter.STATE_LOAD_MORE); - sendRequestData(); - } - - /*** - * 带有header view的listfragment不需要显示是否数据为空 - */ - @Override - protected boolean needShowEmptyNoData() { - return false; - } - - protected void readDetailCacheData(String cacheKey) { - new ReadCacheTask(getActivity()).execute(cacheKey); - } - - private class SaveCacheTask extends AsyncTask { - private final WeakReference mContext; - private final Serializable seri; - private final String key; - - private SaveCacheTask(Context context, Serializable seri, String key) { - mContext = new WeakReference(context); - this.seri = seri; - this.key = key; - } - - @Override - protected Void doInBackground(Void... params) { - CacheManager.saveObject(mContext.get(), seri, key); - return null; - } - } - - private class ReadCacheTask extends AsyncTask { - private final WeakReference mContext; - - private ReadCacheTask(Context context) { - mContext = new WeakReference(context); - } - - @Override - protected T2 doInBackground(String... params) { - if (mContext.get() != null) { - Serializable seri = CacheManager.readObject(mContext.get(), - params[0]); - if (seri == null) { - return null; - } else { - return (T2) seri; - } - } - return null; - } - - @Override - protected void onPostExecute(T2 t) { - super.onPostExecute(t); - if (t != null) { - requstListData(); - executeOnLoadDetailSuccess(t); - } - } - } - - @Override - protected void executeOnLoadDataError(String error) { - mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - mAdapter.setState(ListBaseAdapter.STATE_NETWORK_ERROR); - mAdapter.notifyDataSetChanged(); - } - - @SuppressWarnings("unchecked") - protected T findHeaderView(View headerView, int viewId) { - return (T) headerView.findViewById(viewId); - } -} diff --git a/app/src/main/java/net/oschina/app/base/CommonDetailFragment.java b/app/src/main/java/net/oschina/app/base/CommonDetailFragment.java deleted file mode 100644 index 3c64d4835..000000000 --- a/app/src/main/java/net/oschina/app/base/CommonDetailFragment.java +++ /dev/null @@ -1,558 +0,0 @@ -package net.oschina.app.base; - -import android.content.Context; -import android.content.DialogInterface; -import android.os.AsyncTask; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v7.app.AlertDialog; -import android.text.Editable; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; -import android.webkit.WebView; - -import com.loopj.android.http.AsyncHttpResponseHandler; -import com.loopj.android.http.TextHttpResponseHandler; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.bean.Report; -import net.oschina.app.bean.Result; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.cache.CacheManager; -import net.oschina.app.emoji.OnSendClickListener; -import net.oschina.app.ui.DetailActivity; -import net.oschina.app.ui.ReportDialog; -import net.oschina.app.ui.ShareDialog; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.FontSizeUtils; -import net.oschina.app.util.HTMLUtil; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; - -import cz.msebera.android.httpclient.Header; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.io.Serializable; -import java.lang.ref.WeakReference; - -import butterknife.ButterKnife; - -/** - * 通用的详情fragment - * Created by 火蚁 on 15/5/25. - */ -public abstract class CommonDetailFragment extends BaseFragment implements OnSendClickListener { - - protected int mId; - - protected EmptyLayout mEmptyLayout; - - protected int mCommentCount = 0; - - protected WebView mWebView; - - protected T mDetail; - - private AsyncTask mCacheTask; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setHasOptionsMenu(true); - } - - @Override - protected int getLayoutId() { - return R.layout.fragment_news_detail; - } - - @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(getLayoutId(), container, - false); - mCommentCount = getActivity().getIntent().getIntExtra("comment_count", - 0); - mId = getActivity().getIntent().getIntExtra("id", 0); - ButterKnife.inject(this, view); - initView(view); - initData(); - requestData(false); - return view; - } - - @Override - public void initView(View view) { - mEmptyLayout = (EmptyLayout) view.findViewById(R.id.error_layout); - setCommentCount(mCommentCount); - mWebView = (WebView) view.findViewById(R.id.webview); - UIHelper.initWebView(mWebView); - } - - protected void setCommentCount(int commentCount) { - ((DetailActivity) getActivity()).toolFragment - .setCommentCount(commentCount); - } - - private void requestData(boolean refresh) { - String key = getCacheKey(); - if (TDevice.hasInternet() - && (!CacheManager.isExistDataCache(getActivity(), key) || refresh)) { - sendRequestDataForNet(); - } else { - readCacheData(key); - } - } - - @Override - public void onDestroyView() { - recycleWebView(); - super.onDestroyView(); - } - - private void recycleWebView() { - if (mWebView != null) { - mWebView.setVisibility(View.GONE); - mWebView.removeAllViews(); - mWebView.destroy(); - mWebView = null; - } - } - - private void readCacheData(String cacheKey) { - cancelReadCache(); - mCacheTask = new CacheTask(getActivity()).execute(cacheKey); - } - - private void cancelReadCache() { - if (mCacheTask != null) { - mCacheTask.cancel(true); - mCacheTask = null; - } - } - - protected AsyncHttpResponseHandler mDetailHeandler = new AsyncHttpResponseHandler() { - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - T detail = parseData(new ByteArrayInputStream(arg2)); - if (detail != null) { - mEmptyLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - executeOnLoadDataSuccess(detail); - saveCache(detail); - } else { - executeOnLoadDataError(); - } - } catch (Exception e) { - e.printStackTrace(); - executeOnLoadDataError(); - } - } - - @Override - public void onStart() { - super.onStart(); - mEmptyLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - readCacheData(getCacheKey()); - } - }; - - private class CacheTask extends AsyncTask { - private final WeakReference mContext; - - private CacheTask(Context context) { - mContext = new WeakReference(context); - } - - @Override - protected T doInBackground(String... params) { - if (mContext.get() != null) { - Serializable seri = CacheManager.readObject(mContext.get(), - params[0]); - if (seri == null) { - return null; - } else { - return (T)seri; - } - } - return null; - } - - @Override - protected void onPostExecute(T detail) { - super.onPostExecute(detail); - mEmptyLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - if (detail != null) { - executeOnLoadDataSuccess(detail); - } else { - executeOnLoadDataError(); - } - } - - @Override - protected void onPreExecute() { - super.onPreExecute(); - mEmptyLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - } - } - - protected void executeOnLoadDataSuccess(T detail) { - this.mDetail = detail; - if (this.mDetail == null || TextUtils.isEmpty(this.getWebViewBody(detail))) { - executeOnLoadDataError(); - return; - } - - mWebView.loadDataWithBaseURL("", this.getWebViewBody(detail), "text/html", "UTF-8", ""); - // 显示存储的字体大小 - mWebView.loadUrl(FontSizeUtils.getSaveFontSize()); - boolean favoriteState = getFavoriteState() == 1; - setFavoriteState(favoriteState); - - // 判断最新的评论数是否大于 - if (getCommentCount() > mCommentCount) { - mCommentCount = getCommentCount(); - } - setCommentCount(mCommentCount); - } - - protected void executeOnLoadDataError() { - mEmptyLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - mEmptyLayout.setOnLayoutClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - mState = STATE_REFRESH; - mEmptyLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - requestData(true); - } - }); - } - - protected void saveCache(T detail) { - new SaveCacheTask(getActivity(), detail, getCacheKey()).execute(); - } - - private class SaveCacheTask extends AsyncTask { - private final WeakReference mContext; - private final Serializable seri; - private final String key; - - private SaveCacheTask(Context context, Serializable seri, String key) { - mContext = new WeakReference(context); - this.seri = seri; - this.key = key; - } - - @Override - protected Void doInBackground(Void... params) { - CacheManager.saveObject(mContext.get(), seri, key); - return null; - } - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.common_detail_menu, menu); - super.onCreateOptionsMenu(menu, inflater); - } - - int i = 0; - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.refresh: - sendRequestDataForNet(); - return false; - case R.id.font_size: - showChangeFontSize(); - break; - default: - break; - } - return super.onOptionsItemSelected(item); - } - - AlertDialog fontSizeChange; - - private void showChangeFontSize() { - - final String[] items = getResources().getStringArray( - R.array.font_size); - fontSizeChange = DialogHelp.getSingleChoiceDialog(getActivity(), items, FontSizeUtils.getSaveFontSizeIndex(), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - // 更改字体大小 - FontSizeUtils.saveFontSize(i); - mWebView.loadUrl(FontSizeUtils.getFontSize(i)); - fontSizeChange.dismiss(); - } - }).show(); - } - - // 收藏或者取消收藏 - public void handleFavoriteOrNot() { - if (mDetail == null) { - return; - } - if (!TDevice.hasInternet()) { - AppContext.showToastShort(R.string.tip_no_internet); - return; - } - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - int uid = AppContext.getInstance().getLoginUid(); - final boolean isFavorited = getFavoriteState() == 1 ? true : false; - AsyncHttpResponseHandler mFavoriteHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - Result res = XmlUtils.toBean(ResultBean.class, - new ByteArrayInputStream(arg2)).getResult(); - if (res.OK()) { - AppContext.showToast(res.getErrorMessage()); - boolean newFavorited = !isFavorited; - setFavoriteState(newFavorited); - // 更新收藏的状态 - updateFavoriteChanged(!newFavorited ? 0 : 1); - } else { - onFailure(arg0, arg1, arg2, null); - } - - } catch (Exception e) { - e.printStackTrace(); - onFailure(arg0, arg1, arg2, e); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - AppContext.showToastShort(R.string.add_favorite_faile); - } - - @Override - public void onStart() { - super.onStart(); - showWaitDialog("请稍候..."); - } - - @Override - public void onFinish() { - super.onFinish(); - hideWaitDialog(); - } - }; - - if (isFavorited) { - OSChinaApi.delFavorite(uid, mId, - getFavoriteTargetType(), mFavoriteHandler); - } else { - OSChinaApi.addFavorite(uid, mId, - getFavoriteTargetType(), mFavoriteHandler); - } - } - - private void setFavoriteState(boolean isFavorited) { - ((DetailActivity) getActivity()).toolFragment.setFavorite(isFavorited); - } - - // 举报帖子 - public void onReportMenuClick() { - if (mId == 0 || mDetail == null) { - AppContext.showToast("正在加载,请稍等..."); - } - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - int reportId = mId; - - final ReportDialog dialog = new ReportDialog(getActivity(), - getRepotrUrl(), reportId, getReportType()); - dialog.setCancelable(true); - dialog.setTitle(R.string.report); - dialog.setCanceledOnTouchOutside(true); - dialog.setNegativeButton(R.string.cancle, null); - final TextHttpResponseHandler mReportHandler = new TextHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, String arg2) { - if (TextUtils.isEmpty(arg2)) { - AppContext.showToastShort(R.string.tip_report_success); - } else { - AppContext.showToastShort(new String(arg2)); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, String arg2, - Throwable arg3) { - AppContext.showToastShort(R.string.tip_report_faile); - } - - @Override - public void onFinish() { - hideWaitDialog(); - } - }; - dialog.setPositiveButton(R.string.ok, - new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface d, int which) { - Report report = null; - if ((report = dialog.getReport()) != null) { - showWaitDialog(R.string.progress_submit); - OSChinaApi.report(report, mReportHandler); - } - d.dismiss(); - } - }); - dialog.show(); - } - // 分享 - public void handleShare() { - if (mDetail == null || TextUtils.isEmpty(getShareContent()) - || TextUtils.isEmpty(getShareUrl()) || TextUtils.isEmpty(getShareTitle())) { - AppContext.showToast("内容加载失败..."); - return; - } - final ShareDialog dialog = new ShareDialog(getActivity()); - dialog.setCancelable(true); - dialog.setCanceledOnTouchOutside(true); - dialog.setTitle(R.string.share_to); - dialog.setShareInfo(getShareTitle(), getShareContent(), getShareUrl()); - dialog.show(); - } - // 显示评论列表 - public void onCilckShowComment() { - showCommentView(); - } - - // 刷新数据 - protected void refresh() { - sendRequestDataForNet(); - } - - protected AsyncHttpResponseHandler mCommentHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - ResultBean rsb = XmlUtils.toBean(ResultBean.class, - new ByteArrayInputStream(arg2)); - Result res = rsb.getResult(); - if (res.OK()) { - hideWaitDialog(); - AppContext.showToastShort(res.getErrorMessage()); - // 评论成功之后,评论数加1 - setCommentCount(mCommentCount + 1); - } else { - hideWaitDialog(); - AppContext.showToastShort(res.getErrorMessage()); - } - } catch (Exception e) { - e.printStackTrace(); - onFailure(arg0, arg1, arg2, e); - } - ((DetailActivity) getActivity()).emojiFragment.clean(); - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - hideWaitDialog(); - AppContext.showToastShort(R.string.comment_publish_faile); - } - - @Override - public void onFinish() { - ((DetailActivity) getActivity()).emojiFragment.hideAllKeyBoard(); - }; - }; - - // 发表评论 - @Override - public void onClickSendButton(Editable str) { - if (!TDevice.hasInternet()) { - AppContext.showToastShort(R.string.tip_network_error); - return; - } - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - if (TextUtils.isEmpty(str)) { - AppContext.showToastShort(R.string.tip_comment_content_empty); - return; - } - showWaitDialog(R.string.progress_submit); - - OSChinaApi.publicComment(getCommentType(), mId, AppContext - .getInstance().getLoginUid(), str.toString(), 0, - mCommentHandler); - } - - @Override - public void onClickFlagButton() { - - } - - /*** - * 获取去除html标签的body - * - * @param body - * @return - */ - protected String getFilterHtmlBody(String body) { - if (body == null) - return ""; - return HTMLUtil.delHTMLTag(body.trim()); - } - - // 获取缓存的key - protected abstract String getCacheKey(); - // 从网络中读取数据 - protected abstract void sendRequestDataForNet(); - // 解析数据 - protected abstract T parseData(InputStream is); - // 返回填充到webview中的内容 - protected abstract String getWebViewBody(T detail); - // 显示评论列表 - protected abstract void showCommentView(); - // 获取评论的类型 - protected abstract int getCommentType(); - protected abstract String getShareTitle(); - protected abstract String getShareContent(); - protected abstract String getShareUrl(); - // 返回举报的url - protected String getRepotrUrl() {return "";} - // 返回举报的类型 - protected byte getReportType() {return Report.TYPE_QUESTION;} - - // 获取收藏类型(如新闻、博客、帖子) - protected abstract int getFavoriteTargetType(); - protected abstract int getFavoriteState(); - protected abstract void updateFavoriteChanged(int newFavoritedState); - protected abstract int getCommentCount(); -} diff --git a/app/src/main/java/net/oschina/app/base/ListBaseAdapter.java b/app/src/main/java/net/oschina/app/base/ListBaseAdapter.java deleted file mode 100644 index 4468bc4c7..000000000 --- a/app/src/main/java/net/oschina/app/base/ListBaseAdapter.java +++ /dev/null @@ -1,301 +0,0 @@ -package net.oschina.app.base; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.text.Html; -import android.text.Spanned; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.LinearLayout; -import android.widget.ProgressBar; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.bean.Entity; -import net.oschina.app.emoji.InputHelper; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TDevice; -import net.oschina.app.widget.MyLinkMovementMethod; -import net.oschina.app.widget.MyURLSpan; -import net.oschina.app.widget.TweetTextView; - -import java.util.ArrayList; -import java.util.List; - -public class ListBaseAdapter extends BaseAdapter { - public static final int STATE_EMPTY_ITEM = 0; - public static final int STATE_LOAD_MORE = 1; - public static final int STATE_NO_MORE = 2; - public static final int STATE_NO_DATA = 3; - public static final int STATE_LESS_ONE_PAGE = 4; - public static final int STATE_NETWORK_ERROR = 5; - public static final int STATE_OTHER = 6; - - protected int state = STATE_LESS_ONE_PAGE; - - protected int _loadmoreText; - protected int _loadFinishText; - protected int _noDateText; - protected int mScreenWidth; - - private LayoutInflater mInflater; - - protected LayoutInflater getLayoutInflater(Context context) { - if (mInflater == null) { - mInflater = (LayoutInflater) context - .getSystemService(Context.LAYOUT_INFLATER_SERVICE); - } - return mInflater; - } - - public void setScreenWidth(int width) { - mScreenWidth = width; - } - - public void setState(int state) { - this.state = state; - } - - public int getState() { - return this.state; - } - - protected ArrayList mDatas = new ArrayList(); - - public ListBaseAdapter() { - _loadmoreText = R.string.loading; - _loadFinishText = R.string.loading_no_more; - _noDateText = R.string.error_view_no_data; - } - - @Override - public int getCount() { - switch (getState()) { - case STATE_EMPTY_ITEM: - return getDataSizePlus1(); - case STATE_NETWORK_ERROR: - case STATE_LOAD_MORE: - return getDataSizePlus1(); - case STATE_NO_DATA: - return 1; - case STATE_NO_MORE: - return getDataSizePlus1(); - case STATE_LESS_ONE_PAGE: - return getDataSize(); - default: - break; - } - return getDataSize(); - } - - public int getDataSizePlus1(){ - if(hasFooterView()){ - return getDataSize() + 1; - } - return getDataSize(); - } - - public int getDataSize() { - return mDatas.size(); - } - - @Override - public T getItem(int arg0) { - if (mDatas.size() > arg0) { - return mDatas.get(arg0); - } - return null; - } - - @Override - public long getItemId(int arg0) { - return arg0; - } - - public void setData(ArrayList data) { - mDatas = data; - notifyDataSetChanged(); - } - - public ArrayList getData() { - return mDatas == null ? (mDatas = new ArrayList()) : mDatas; - } - - public void addData(List data) { - if (mDatas != null && data != null && !data.isEmpty()) { - mDatas.addAll(data); - } - notifyDataSetChanged(); - } - - public void addItem(T obj) { - if (mDatas != null) { - mDatas.add(obj); - } - notifyDataSetChanged(); - } - - public void addItem(int pos, T obj) { - if (mDatas != null) { - mDatas.add(pos, obj); - } - notifyDataSetChanged(); - } - - public void removeItem(Object obj) { - mDatas.remove(obj); - notifyDataSetChanged(); - } - - public void clear() { - mDatas.clear(); - notifyDataSetChanged(); - } - - public void setLoadmoreText(int loadmoreText) { - _loadmoreText = loadmoreText; - } - - public void setLoadFinishText(int loadFinishText) { - _loadFinishText = loadFinishText; - } - - public void setNoDataText(int noDataText) { - _noDateText = noDataText; - } - - protected boolean loadMoreHasBg() { - return true; - } - - @SuppressWarnings("deprecation") - @SuppressLint("InflateParams") - @Override - public View getView(int position, View convertView, ViewGroup parent) { - if (position == getCount() - 1&&hasFooterView()) {// 最后一条 - // if (position < _data.size()) { - // position = getCount() - 2; // footview - // } - if (getState() == STATE_LOAD_MORE || getState() == STATE_NO_MORE - || state == STATE_EMPTY_ITEM - || getState() == STATE_NETWORK_ERROR) { - this.mFooterView = (LinearLayout) LayoutInflater.from( - parent.getContext()).inflate(R.layout.list_cell_footer, - null); - if (!loadMoreHasBg()) { - mFooterView.setBackgroundDrawable(null); - } - ProgressBar progress = (ProgressBar) mFooterView - .findViewById(R.id.progressbar); - TextView text = (TextView) mFooterView.findViewById(R.id.text); - switch (getState()) { - case STATE_LOAD_MORE: - setFooterViewLoading(); - break; - case STATE_NO_MORE: - mFooterView.setVisibility(View.VISIBLE); - progress.setVisibility(View.GONE); - text.setVisibility(View.VISIBLE); - text.setText(_loadFinishText); - break; - case STATE_EMPTY_ITEM: - progress.setVisibility(View.GONE); - mFooterView.setVisibility(View.VISIBLE); - text.setText(_noDateText); - break; - case STATE_NETWORK_ERROR: - mFooterView.setVisibility(View.VISIBLE); - progress.setVisibility(View.GONE); - text.setVisibility(View.VISIBLE); - if (TDevice.hasInternet()) { - text.setText("加载出错了"); - } else { - text.setText("没有可用的网络"); - } - break; - default: - progress.setVisibility(View.GONE); - mFooterView.setVisibility(View.GONE); - text.setVisibility(View.GONE); - break; - } - return mFooterView; - } - } - if (position < 0) { - position = 0; // 若列表没有数据,是没有footview/headview的 - } - return getRealView(position, convertView, parent); - } - - protected View getRealView(int position, View convertView, ViewGroup parent) { - return null; - } - - private LinearLayout mFooterView; - - protected boolean hasFooterView(){ - return true; - } - - public View getFooterView() { - return this.mFooterView; - } - - public void setFooterViewLoading(String loadMsg) { - ProgressBar progress = (ProgressBar) mFooterView - .findViewById(R.id.progressbar); - TextView text = (TextView) mFooterView.findViewById(R.id.text); - mFooterView.setVisibility(View.VISIBLE); - progress.setVisibility(View.VISIBLE); - text.setVisibility(View.VISIBLE); - if (StringUtils.isEmpty(loadMsg)) { - text.setText(_loadmoreText); - } else { - text.setText(loadMsg); - } - } - - public void setFooterViewLoading() { - setFooterViewLoading(""); - } - - public void setFooterViewText(String msg) { - ProgressBar progress = (ProgressBar) mFooterView - .findViewById(R.id.progressbar); - TextView text = (TextView) mFooterView.findViewById(R.id.text); - mFooterView.setVisibility(View.VISIBLE); - progress.setVisibility(View.GONE); - text.setVisibility(View.VISIBLE); - text.setText(msg); - } - - protected void setContent(TweetTextView contentView, String content) { - contentView.setMovementMethod(MyLinkMovementMethod.a()); - contentView.setFocusable(false); - contentView.setDispatchToParent(true); - contentView.setLongClickable(false); - Spanned span = Html.fromHtml(TweetTextView.modifyPath(content)); - span = InputHelper.displayEmoji(contentView.getResources(), - span.toString()); - contentView.setText(span); - MyURLSpan.parseLinkText(contentView, span); - } - - protected void setText(TextView textView, String text, boolean needGone) { - if (text == null || TextUtils.isEmpty(text)) { - if (needGone) { - textView.setVisibility(View.GONE); - } - } else { - textView.setText(text); - } - } - - protected void setText(TextView textView, String text) { - setText(textView, text, false); - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Active.java b/app/src/main/java/net/oschina/app/bean/Active.java deleted file mode 100644 index 0bce263de..000000000 --- a/app/src/main/java/net/oschina/app/bean/Active.java +++ /dev/null @@ -1,240 +0,0 @@ -package net.oschina.app.bean; - -import java.io.Serializable; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 动态实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月22日 下午3:22:09 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("active") -public class Active extends Entity { - - public final static int CATALOG_OTHER = 0;// 其他 - public final static int CATALOG_NEWS = 1;// 新闻 - public final static int CATALOG_POST = 2;// 帖子 - public final static int CATALOG_TWEET = 3;// 动弹 - public final static int CATALOG_BLOG = 4;// 博客 - - public final static int CLIENT_MOBILE = 2; - public final static int CLIENT_ANDROID = 3; - public final static int CLIENT_IPHONE = 4; - public final static int CLIENT_WINDOWS_PHONE = 5; - - @XStreamAlias("portrait") - private String portrait; - - @XStreamAlias("message") - private String message; - - @XStreamAlias("author") - private String author; - - @XStreamAlias("authorid") - private int authorId; - - @XStreamAlias("activetype") - private int activeType; - - @XStreamAlias("objectID") - private int objectId; - - @XStreamAlias("catalog") - private int catalog; - - @XStreamAlias("objecttype") - private int objectType; - - @XStreamAlias("objectcatalog") - private int objectCatalog; - - @XStreamAlias("objecttitle") - private String objectTitle; - - @XStreamAlias("objectreply") - private ObjectReply objectReply; - - @XStreamAlias("commentCount") - private int commentCount; - - @XStreamAlias("pubDate") - private String pubDate; - - @XStreamAlias("tweetimage") - private String tweetimage; - - @XStreamAlias("tweetattach") - private String tweetattach; - - @XStreamAlias("appclient") - private int appClient; - - @XStreamAlias("url") - private String url; - - public String getPortrait() { - return portrait; - } - - public void setPortrait(String portrait) { - this.portrait = portrait; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public String getAuthor() { - return author; - } - - public void setAuthor(String author) { - this.author = author; - } - - public int getAuthorId() { - return authorId; - } - - public void setAuthorId(int authorId) { - this.authorId = authorId; - } - - public int getActiveType() { - return activeType; - } - - public void setActiveType(int activeType) { - this.activeType = activeType; - } - - public int getObjectId() { - return objectId; - } - - public void setObjectId(int objectId) { - this.objectId = objectId; - } - - public int getCatalog() { - return catalog; - } - - public void setCatalog(int catalog) { - this.catalog = catalog; - } - - public int getObjectType() { - return objectType; - } - - public void setObjectType(int objectType) { - this.objectType = objectType; - } - - public int getObjectCatalog() { - return objectCatalog; - } - - public void setObjectCatalog(int objectCatalog) { - this.objectCatalog = objectCatalog; - } - - public String getObjectTitle() { - return objectTitle; - } - - public void setObjectTitle(String objectTitle) { - this.objectTitle = objectTitle; - } - - public ObjectReply getObjectReply() { - return objectReply; - } - - public void setObjectReply(ObjectReply objectReply) { - this.objectReply = objectReply; - } - - public int getCommentCount() { - return commentCount; - } - - public void setCommentCount(int commentCount) { - this.commentCount = commentCount; - } - - public String getPubDate() { - return pubDate; - } - - public void setPubDate(String pubDate) { - this.pubDate = pubDate; - } - - public String getTweetattach() { - return tweetattach; - } - - public void setTweetattach(String tweetattach) { - this.tweetattach = tweetattach; - } - - public String getTweetimage() { - return tweetimage; - } - - public void setTweetimage(String tweetimage) { - this.tweetimage = tweetimage; - } - - public int getAppClient() { - return appClient; - } - - public void setAppClient(int appClient) { - this.appClient = appClient; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - @XStreamAlias("objectreply") - public static class ObjectReply implements Serializable { - @XStreamAlias("objectname") - public String objectName; - - @XStreamAlias("objectbody") - public String objectBody; - - public String getObjectName() { - return objectName; - } - - public void setObjectName(String objectName) { - this.objectName = objectName; - } - - public String getObjectBody() { - return objectBody; - } - - public void setObjectBody(String objectBody) { - this.objectBody = objectBody; - } - } -} diff --git a/app/src/main/java/net/oschina/app/bean/ActiveList.java b/app/src/main/java/net/oschina/app/bean/ActiveList.java deleted file mode 100644 index 6b2219d0c..000000000 --- a/app/src/main/java/net/oschina/app/bean/ActiveList.java +++ /dev/null @@ -1,60 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 动态实体列表 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月22日 下午3:34:21 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class ActiveList extends Entity implements ListEntity { - - public final static int CATALOG_LASTEST = 1;// 最新 - public final static int CATALOG_ATME = 2;// @我 - public final static int CATALOG_COMMENT = 3;// 评论 - public final static int CATALOG_MYSELF = 4;// 我自己 - - @XStreamAlias("pagesize") - private int pageSize; - - @XStreamAlias("activeCount") - private int activeCount; - - @XStreamAlias("activies") - private List activelist = new ArrayList(); - - @XStreamAlias("result") - private Result result; - - public int getPageSize() { - return pageSize; - } - - public int getActiveCount() { - return activeCount; - } - - public List getActivelist() { - return activelist; - } - - @Override - public List getList() { - return activelist; - } - - public Result getResult() { - return result; - } - - public void setResult(Result result) { - this.result = result; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Apply.java b/app/src/main/java/net/oschina/app/bean/Apply.java deleted file mode 100644 index 366bbc7e6..000000000 --- a/app/src/main/java/net/oschina/app/bean/Apply.java +++ /dev/null @@ -1,61 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 活动报名者实体类 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2015年1月16日 下午3:27:04 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("apply") -public class Apply extends Entity { - - @XStreamAlias("uid") - private int userid; - - @XStreamAlias("name") - private String name; - - @XStreamAlias("portrait") - private String portrait; - - @XStreamAlias("company") - private String company; - - @XStreamAlias("job") - private String job; - - public int getId() { - return userid; - } - public void setId(int userid) { - this.userid = userid; - } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public String getPortrait() { - return portrait; - } - public void setPortrait(String portrait) { - this.portrait = portrait; - } - public String getCompany() { - return company; - } - public void setCompany(String company) { - this.company = company; - } - public String getJob() { - return job; - } - public void setJob(String job) { - this.job = job; - } -} - diff --git a/app/src/main/java/net/oschina/app/bean/BarCode.java b/app/src/main/java/net/oschina/app/bean/BarCode.java deleted file mode 100644 index c63e5bbb8..000000000 --- a/app/src/main/java/net/oschina/app/bean/BarCode.java +++ /dev/null @@ -1,102 +0,0 @@ -package net.oschina.app.bean; - -import java.io.Serializable; - -import net.oschina.app.AppException; - -import org.json.JSONException; -import org.json.JSONObject; - -/** - * 二维码扫描实体类 - * @author 火蚁 (http://my.oschina.net/LittleDY) - * @version 1.0 - * @created 2014-3-17 - */ -@SuppressWarnings("serial") -public class BarCode extends Entity implements Serializable{ - - public final static String NODE_REQURE_LOGIN = "require_login"; - public final static String NODE_TYPE = "type"; - public final static String NODE_URL = "url"; - public final static String NODE_TITLE = "title"; - - public final static byte LOGIN_IN = 0x00;// 登录 - public final static byte SIGN_IN = 0x01;// 签到 - - private boolean requireLogin;// 是否需要登录 - private int type;// 类型 - private String url;// url地址 - private String title;// 标题 - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public boolean isRequireLogin() { - return requireLogin; - } - - public void setRequireLogin(boolean requireLogin) { - this.requireLogin = requireLogin; - } - - public int getType() { - return type; - } - - public void setType(int type) { - this.type = type; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public static BarCode parse(String barCodeString) throws AppException { - BarCode barCode = new BarCode(); - try { - // 由字符串创建json对象 - JSONObject jsonObject = new JSONObject(barCodeString); - // 取数据操作 - if (!jsonObject.isNull(NODE_REQURE_LOGIN)) { - barCode.setRequireLogin(jsonObject.getBoolean(NODE_REQURE_LOGIN)); - } else { - barCode.setUrl("www.oschina.net"); - } - if (!jsonObject.isNull(NODE_TYPE)) { - barCode.setType(jsonObject.getInt(NODE_TYPE)); - } else { - barCode.setType(1); - } - if (!jsonObject.isNull(NODE_URL)) { - barCode.setUrl(jsonObject.getString(NODE_URL)); - } else { - barCode.setUrl("www.oschina.net"); - } - if (!jsonObject.isNull(NODE_TITLE)) { - barCode.setTitle(jsonObject.getString(NODE_TITLE)); - } else { - barCode.setTitle(""); - } - } catch (JSONException e) { - // 抛出一个json解析错误的异常 - throw AppException.json(e); - } - return barCode; - } - - @Override - public String toString() { - return "Barcode [requireLogin=" + requireLogin + ", type=" + type - + ", url=" + url + "]"; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Base.java b/app/src/main/java/net/oschina/app/bean/Base.java deleted file mode 100644 index d9f64576d..000000000 --- a/app/src/main/java/net/oschina/app/bean/Base.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.oschina.app.bean; - -import java.io.Serializable; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 实体基类:实现序列化 - * @author liux (http://my.oschina.net/liux) - * @version 1.0 - * @created 2012-3-21 - */ -@SuppressWarnings("serial") -public abstract class Base implements Serializable { - - @XStreamAlias("notice") - protected Notice notice; - - public Notice getNotice() { - return notice; - } - - public void setNotice(Notice notice) { - this.notice = notice; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Blog.java b/app/src/main/java/net/oschina/app/bean/Blog.java deleted file mode 100644 index 67eb58d00..000000000 --- a/app/src/main/java/net/oschina/app/bean/Blog.java +++ /dev/null @@ -1,126 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * @author HuangWenwei - * - * @date 2014年9月29日 - */ -@SuppressWarnings("serial") -@XStreamAlias("blog") -public class Blog extends Entity { - - public final static int DOC_TYPE_REPASTE = 0;//转帖 - public final static int DOC_TYPE_ORIGINAL = 1;//原创 - - @XStreamAlias("title") - private String title; - - @XStreamAlias("url") - private String url; - - @XStreamAlias("where") - private String where; - - @XStreamAlias("commentCount") - private int commentCount; - - @XStreamAlias("body") - private String body; - - @XStreamAlias("author") - private String authorname; - - @XStreamAlias("authorid") - private int authoruid; - - @XStreamAlias("documentType") - private int documentType; - - @XStreamAlias("pubDate") - private String pubDate; - - @XStreamAlias("favorite") - private int favorite; - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getWhere() { - return where; - } - - public void setWhere(String where) { - this.where = where; - } - - public int getCommentCount() { - return commentCount; - } - - public void setCommentCount(int commentCount) { - this.commentCount = commentCount; - } - - public String getBody() { - return body; - } - - public void setBody(String body) { - this.body = body; - } - - public String getAuthor() { - return authorname; - } - - public void setAuthor(String author) { - this.authorname = author; - } - - public int getAuthorId() { - return authoruid; - } - - public void setAuthorId(int authorId) { - this.authoruid = authorId; - } - - public int getDocumenttype() { - return documentType; - } - - public void setDocumenttype(int documenttype) { - this.documentType = documenttype; - } - - public String getPubDate() { - return pubDate; - } - - public void setPubDate(String pubDate) { - this.pubDate = pubDate; - } - - public int getFavorite() { - return favorite; - } - - public void setFavorite(int favorite) { - this.favorite = favorite; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/BlogCommentList.java b/app/src/main/java/net/oschina/app/bean/BlogCommentList.java deleted file mode 100644 index c50b632c6..000000000 --- a/app/src/main/java/net/oschina/app/bean/BlogCommentList.java +++ /dev/null @@ -1,41 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 博客评论列表实体类 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月17日 上午10:28:04 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class BlogCommentList extends Entity implements ListEntity { - - @XStreamAlias("pagesize") - private int pageSize; - @XStreamAlias("allCount") - private int allCount; - @XStreamAlias("comments") - private List commentlist = new ArrayList(); - - public int getPageSize() { - return pageSize; - } - - public int getAllCount() { - return allCount; - } - - public List getCommentlist() { - return commentlist; - } - - @Override - public List getList() { - return commentlist; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/BlogDetail.java b/app/src/main/java/net/oschina/app/bean/BlogDetail.java deleted file mode 100644 index 97918d7fc..000000000 --- a/app/src/main/java/net/oschina/app/bean/BlogDetail.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 博客详情 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月15日 上午10:51:11 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class BlogDetail extends Entity { - - @XStreamAlias("blog") - private Blog blog; - - public Blog getBlog() { - return blog; - } - - public void setBlog(Blog blog) { - this.blog = blog; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/BlogList.java b/app/src/main/java/net/oschina/app/bean/BlogList.java deleted file mode 100644 index 80ded41b5..000000000 --- a/app/src/main/java/net/oschina/app/bean/BlogList.java +++ /dev/null @@ -1,67 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * @author HuangWenwei - * - * @date 2014年9月28日 - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class BlogList extends Entity implements ListEntity { - - public final static String PREF_READED_BLOG_LIST = "readed_blog_list.pref"; - - public static final String CATALOG_LATEST = "latest"; - public static final String CATALOG_RECOMMEND = "recommend"; - - @XStreamAlias("pagesize") - private int pagesize; - - @XStreamAlias("blogs") - private List bloglist = new ArrayList(); - - @XStreamAlias("blogsCount") - private int blogsCount; - - public int getPageSize() { - return pagesize; - } - - public void setPageSize(int pageSize) { - this.pagesize = pageSize; - } - - public List getBloglist() { - return bloglist; - } - - public void setBloglist(List bloglist) { - this.bloglist = bloglist; - } - - @Override - public List getList() { - return bloglist; - } - - public int getPagesize() { - return pagesize; - } - - public void setPagesize(int pagesize) { - this.pagesize = pagesize; - } - - public int getBlogsCount() { - return blogsCount; - } - - public void setBlogsCount(int blogsCount) { - this.blogsCount = blogsCount; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Comment.java b/app/src/main/java/net/oschina/app/bean/Comment.java deleted file mode 100644 index ff846d07a..000000000 --- a/app/src/main/java/net/oschina/app/bean/Comment.java +++ /dev/null @@ -1,287 +0,0 @@ -package net.oschina.app.bean; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import android.os.Parcel; -import android.os.Parcelable; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 评论实体类 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月14日 下午3:29:22 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("comment") -public class Comment extends Entity implements Parcelable { - - public static final String BUNDLE_KEY_COMMENT = "bundle_key_comment"; - public static final String BUNDLE_KEY_ID = "bundle_key_id"; - public static final String BUNDLE_KEY_CATALOG = "bundle_key_catalog"; - public static final String BUNDLE_KEY_BLOG = "bundle_key_blog"; - public static final String BUNDLE_KEY_OPERATION = "bundle_key_operation"; - - public static final int OPT_ADD = 1; - public static final int OPT_REMOVE = 2; - - public final static int CLIENT_MOBILE = 2; - public final static int CLIENT_ANDROID = 3; - public final static int CLIENT_IPHONE = 4; - public final static int CLIENT_WINDOWS_PHONE = 5; - - @XStreamAlias("portrait") - private String portrait; - - @XStreamAlias("content") - private String content; - - @XStreamAlias("author") - private String author; - - @XStreamAlias("authorid") - private int authorId; - - @XStreamAlias("pubDate") - private String pubDate; - - @XStreamAlias("appclient") - private int appClient; - - @XStreamAlias("replies") - private List replies = new ArrayList(); - - @XStreamAlias("refers") - private List refers = new ArrayList(); - - @SuppressWarnings("unchecked") - public Comment(Parcel source) { - id = source.readInt(); - portrait = source.readString(); - author = source.readString(); - authorId = source.readInt(); - pubDate = source.readString(); - appClient = source.readInt(); - content = source.readString(); - - replies = source.readArrayList(Reply.class.getClassLoader()); - refers = source.readArrayList(Refer.class.getClassLoader()); - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeInt(id); - dest.writeString(portrait); - dest.writeString(author); - dest.writeInt(authorId); - dest.writeString(pubDate); - dest.writeInt(appClient); - dest.writeString(content); - - dest.writeList(replies); - dest.writeList(refers); - } - - @Override - public int describeContents() { - return 0; - } - - public String getPortrait() { - return portrait; - } - - public void setPortrait(String portrait) { - this.portrait = portrait; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getAuthor() { - return author; - } - - public void setAuthor(String author) { - this.author = author; - } - - public int getAuthorId() { - return authorId; - } - - public void setAuthorId(int authorId) { - this.authorId = authorId; - } - - public String getPubDate() { - return pubDate; - } - - public void setPubDate(String pubDate) { - this.pubDate = pubDate; - } - - public int getAppClient() { - return appClient; - } - - public void setAppClient(int appClient) { - this.appClient = appClient; - } - - public List getReplies() { - return replies; - } - - public void setReplies(List replies) { - this.replies = replies; - } - - public List getRefers() { - return refers; - } - - public void setRefers(List refers) { - this.refers = refers; - } - - @XStreamAlias("reply") - public static class Reply implements Serializable, Parcelable { - @XStreamAlias("rauthor") - public String rauthor; - @XStreamAlias("rpubDate") - public String rpubDate; - @XStreamAlias("rcontent") - public String rcontent; - - public Reply() { - } - - public Reply(Parcel source) { - rauthor = source.readString(); - rpubDate = source.readString(); - rcontent = source.readString(); - } - - public String getRauthor() { - return rauthor; - } - public void setRauthor(String rauthor) { - this.rauthor = rauthor; - } - public String getRpubDate() { - return rpubDate; - } - public void setRpubDate(String rpubDate) { - this.rpubDate = rpubDate; - } - public String getRcontent() { - return rcontent; - } - public void setRcontent(String rcontent) { - this.rcontent = rcontent; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(rauthor); - dest.writeString(rpubDate); - dest.writeString(rcontent); - } - - @Override - public int describeContents() { - return 0; - } - - public static final Parcelable.Creator CREATOR = new Creator() { - - @Override - public Reply[] newArray(int size) { - return new Reply[size]; - } - - @Override - public Reply createFromParcel(Parcel source) { - return new Reply(source); - } - }; - - } - - @XStreamAlias("refer") - public static class Refer implements Serializable, Parcelable { - - @XStreamAlias("refertitle") - public String refertitle; - @XStreamAlias("referbody") - public String referbody; - - public Refer() { - } - - public Refer(Parcel source) { - referbody = source.readString(); - refertitle = source.readString(); - } - - public String getRefertitle() { - return refertitle; - } - public void setRefertitle(String refertitle) { - this.refertitle = refertitle; - } - public String getReferbody() { - return referbody; - } - public void setReferbody(String referbody) { - this.referbody = referbody; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(referbody); - dest.writeString(refertitle); - } - - @Override - public int describeContents() { - return 0; - } - - public static final Parcelable.Creator CREATOR = new Creator() { - - @Override - public Refer[] newArray(int size) { - return new Refer[size]; - } - - @Override - public Refer createFromParcel(Parcel source) { - return new Refer(source); - } - }; - } - - public static final Parcelable.Creator CREATOR = new Creator() { - - @Override - public Comment[] newArray(int size) { - return new Comment[size]; - } - - @Override - public Comment createFromParcel(Parcel source) { - return new Comment(source); - } - }; -} diff --git a/app/src/main/java/net/oschina/app/bean/CommentList.java b/app/src/main/java/net/oschina/app/bean/CommentList.java deleted file mode 100644 index 0b19aa565..000000000 --- a/app/src/main/java/net/oschina/app/bean/CommentList.java +++ /dev/null @@ -1,60 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 评论列表实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月14日 下午3:32:39 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class CommentList extends Entity implements ListEntity { - - public final static int CATALOG_NEWS = 1; - public final static int CATALOG_POST = 2; - public final static int CATALOG_TWEET = 3; - public final static int CATALOG_ACTIVE = 4; - public final static int CATALOG_MESSAGE = 4;// 动态与留言都属于消息中心 - - @XStreamAlias("pagesize") - private int pageSize; - @XStreamAlias("allCount") - private int allCount; - @XStreamAlias("comments") - private final List commentlist = new ArrayList(); - - public int getPageSize() { - return pageSize; - } - - public int getAllCount() { - return allCount; - } - - public List getCommentlist() { - return commentlist; - } - - @Override - public List getList() { - return commentlist; - } - - public void sortList() { - Collections.sort(commentlist, new Comparator() { - - @Override - public int compare(Comment lhs, Comment rhs) { - return lhs.getPubDate().compareTo(rhs.getPubDate()); - } - }); - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Constants.java b/app/src/main/java/net/oschina/app/bean/Constants.java deleted file mode 100644 index edaf5cc4f..000000000 --- a/app/src/main/java/net/oschina/app/bean/Constants.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.oschina.app.bean; - -/** - * 常量类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年10月27日 下午12:14:42 - * - */ - -public class Constants { - - public static final String INTENT_ACTION_USER_CHANGE = "net.oschina.action.USER_CHANGE"; - - public static final String INTENT_ACTION_COMMENT_CHANGED = "net.oschina.action.COMMENT_CHANGED"; - - public static final String INTENT_ACTION_NOTICE = "net.oschina.action.APPWIDGET_UPDATE"; - - public static final String INTENT_ACTION_LOGOUT = "net.oschina.action.LOGOUT"; - - public static final String WEICHAT_APPID = "wxa8213dc827399101"; - public static final String WEICHAT_SECRET = "5c716417ce72ff69d8cf0c43572c9284"; - - public static final String QQ_APPID = "100942993"; - public static final String QQ_APPKEY = "8edd3cc7ca8dcc15082d6fe75969601b"; -} diff --git a/app/src/main/java/net/oschina/app/bean/Entity.java b/app/src/main/java/net/oschina/app/bean/Entity.java deleted file mode 100644 index 60fdf96e4..000000000 --- a/app/src/main/java/net/oschina/app/bean/Entity.java +++ /dev/null @@ -1,35 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 实体类 - * - * @author liux (http://my.oschina.net/liux) - * @version 1.0 - * @created 2012-3-21 - */ -@SuppressWarnings("serial") -public abstract class Entity extends Base { - - @XStreamAlias("id") - protected int id; - - protected String cacheKey; - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getCacheKey() { - return cacheKey; - } - - public void setCacheKey(String cacheKey) { - this.cacheKey = cacheKey; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Event.java b/app/src/main/java/net/oschina/app/bean/Event.java deleted file mode 100644 index 25c50e8a3..000000000 --- a/app/src/main/java/net/oschina/app/bean/Event.java +++ /dev/null @@ -1,186 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 活动实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年12月12日 下午3:18:08 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("event") -public class Event extends Entity { - - public final static int EVNET_STATUS_APPLYING = 0x02; - public final static int EVNET_STATUS_END = 0x01; - - public final static int APPLYSTATUS_CHECKING = 0x00;// 审核中 - public final static int APPLYSTATUS_CHECKED = 0x01;// 已经确认 - public final static int APPLYSTATUS_ATTEND = 0x02;// 已经出席 - public final static int APPLYSTATUS_CANCLE = 0x03;// 已取消 - public final static int APPLYSTATUS_REJECT = 0X04;// 已拒绝 - - @XStreamAlias("cover") - private String cover; - - @XStreamAlias("title") - private String title; - - @XStreamAlias("url") - private String url; - - @XStreamAlias("createTime") - private String createTime; - - @XStreamAlias("startTime") - private String startTime; - - @XStreamAlias("endTime") - private String endTime; - - @XStreamAlias("spot") - private String spot; - - @XStreamAlias("actor_count") - private int actor_count; - - @XStreamAlias("location") - private String location; - - @XStreamAlias("city") - private String city; - - @XStreamAlias("status") - private int status; - - @XStreamAlias("applyStatus") - private int applyStatus; - - @XStreamAlias("category") - private int category;// 活动类型 1源创会 2技术交流 3其他 4站外活动 - - @XStreamAlias("remark") - private EventRemark eventRemark; - - public int getCategory() { - return category; - } - - public void setCategory(int category) { - this.category = category; - } - - public String getCity() { - return city; - } - - public void setCity(String city) { - this.city = city; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getCover() { - return cover; - } - - public void setCover(String cover) { - this.cover = cover; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getSpot() { - return spot; - } - - public void setSpot(String spot) { - this.spot = spot; - } - - public int getActor_count() { - return actor_count; - } - - public void setActor_count(int actor_count) { - this.actor_count = actor_count; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public int getStatus() { - return status; - } - - public void setStatus(int status) { - this.status = status; - } - - public int getApplyStatus() { - return applyStatus; - } - - public void setApplyStatus(int applyStatus) { - this.applyStatus = applyStatus; - } - - public EventRemark getEventRemark() { - return eventRemark; - } - - public void setEventRemark(EventRemark eventRemark) { - this.eventRemark = eventRemark; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/EventAppliesList.java b/app/src/main/java/net/oschina/app/bean/EventAppliesList.java deleted file mode 100644 index 9ac5dfb07..000000000 --- a/app/src/main/java/net/oschina/app/bean/EventAppliesList.java +++ /dev/null @@ -1,33 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 活动参与者列表实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年12月12日 下午8:06:30 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class EventAppliesList extends Entity implements ListEntity { - - public final static int TYPE_FANS = 0x00; - public final static int TYPE_FOLLOWER = 0x01; - - @XStreamAlias("applies") - private List list = new ArrayList(); - - @Override - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/EventApplyData.java b/app/src/main/java/net/oschina/app/bean/EventApplyData.java deleted file mode 100644 index 89a6a5d65..000000000 --- a/app/src/main/java/net/oschina/app/bean/EventApplyData.java +++ /dev/null @@ -1,92 +0,0 @@ -package net.oschina.app.bean; - -/** - * 活动报名实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年12月17日 下午3:13:07 - * - */ -@SuppressWarnings("serial") -public class EventApplyData extends Entity { - - private int event;// 活动的id - - private int user;// 用户的id - - private String name;// 名字 - - private String gender;// 性别 - - private String mobile;// 电话 - - private String company;// 单位名称 - - private String job;// 职业名称 - - private String remark;// 备注 - - public int getEvent() { - return event; - } - - public void setEvent(int event) { - this.event = event; - } - - public int getUser() { - return user; - } - - public void setUser(int user) { - this.user = user; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getGender() { - return gender; - } - - public void setGender(String gender) { - this.gender = gender; - } - - public String getPhone() { - return mobile; - } - - public void setPhone(String phone) { - this.mobile = phone; - } - - public String getCompany() { - return company; - } - - public void setCompany(String company) { - this.company = company; - } - - public String getJob() { - return job; - } - - public void setJob(String job) { - this.job = job; - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/EventList.java b/app/src/main/java/net/oschina/app/bean/EventList.java deleted file mode 100644 index ad2f80a5f..000000000 --- a/app/src/main/java/net/oschina/app/bean/EventList.java +++ /dev/null @@ -1,38 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 活动实体类列表 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年12月10日 下午2:28:54 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class EventList extends Entity implements ListEntity { - - public final static int EVENT_LIST_TYPE_NEW_EVENT = 0X00;// 近期活动 - - public final static int EVENT_LIST_TYPE_MY_EVENT = 0X01;// 我的活动 - - @XStreamAlias("events") - private List friendlist = new ArrayList(); - - public List getFriendlist() { - return friendlist; - } - - public void setFriendlist(List resultlist) { - this.friendlist = resultlist; - } - - @Override - public List getList() { - return friendlist; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/EventRemark.java b/app/src/main/java/net/oschina/app/bean/EventRemark.java deleted file mode 100644 index f0242a22f..000000000 --- a/app/src/main/java/net/oschina/app/bean/EventRemark.java +++ /dev/null @@ -1,51 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamImplicit; - -import java.io.Serializable; -import java.util.List; - -/** - * 活动备注选择 - * Created by zhangdeyi on 15/8/19. - */ -@XStreamAlias("remark") -public class EventRemark implements Serializable { - - @XStreamAlias("remarkTip") - private String remarkTip; - - @XStreamAlias("remarkSelect") - private RemarksSelet select; - - public class RemarksSelet implements Serializable { - @XStreamImplicit(itemFieldName = "select") - private List list; - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - } - - public String getRemarkTip() { - return remarkTip; - } - - public void setRemarkTip(String remarkTip) { - this.remarkTip = remarkTip; - } - - public RemarksSelet getSelect() { - return select; - } - - public void setSelect(RemarksSelet select) { - this.select = select; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Favorite.java b/app/src/main/java/net/oschina/app/bean/Favorite.java deleted file mode 100644 index d229ffdb4..000000000 --- a/app/src/main/java/net/oschina/app/bean/Favorite.java +++ /dev/null @@ -1,54 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 收藏实体类 - * @author hww - * - */ -@SuppressWarnings("serial") -@XStreamAlias("favorite") -public class Favorite extends Entity { - - public static final int CATALOG_ALL = 0; - public static final int CATALOG_SOFTWARE = 1; - public static final int CATALOG_TOPIC = 2; - public static final int CATALOG_BLOGS = 3; - public static final int CATALOG_NEWS = 4; - public static final int CATALOG_CODE = 5; - - @XStreamAlias("objid") - public int id; - @XStreamAlias("type") - public int type; - @XStreamAlias("title") - public String title; - @XStreamAlias("url") - public String url; - public int getId() { - return id; - } - public void setId(int id) { - this.id = id; - } - public int getType() { - return type; - } - public void setType(int type) { - this.type = type; - } - public String getTitle() { - return title; - } - public void setTitle(String title) { - this.title = title; - } - public String getUrl() { - return url; - } - public void setUrl(String url) { - this.url = url; - } - -} diff --git a/app/src/main/java/net/oschina/app/bean/FavoriteList.java b/app/src/main/java/net/oschina/app/bean/FavoriteList.java deleted file mode 100644 index 513eb64a4..000000000 --- a/app/src/main/java/net/oschina/app/bean/FavoriteList.java +++ /dev/null @@ -1,50 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 收藏实体类 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月14日 下午2:27:39 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class FavoriteList extends Entity implements ListEntity { - - public final static int TYPE_ALL = 0x00; - public final static int TYPE_SOFTWARE = 0x01; - public final static int TYPE_POST = 0x02; - public final static int TYPE_BLOG = 0x03; - public final static int TYPE_NEWS = 0x04; - public final static int TYPE_CODE = 0x05; - - @XStreamAlias("pagesize") - private int pageSize; - @XStreamAlias("favorites") - private List favoritelist = new ArrayList(); - - public int getPageSize() { - return pageSize; - } - - public void setPageSize(int pagesize) { - this.pageSize = pagesize; - } - - public List getFavoritelist() { - return favoritelist; - } - - public void setFavoritelist(List favoritelist) { - this.favoritelist = favoritelist; - } - - @Override - public List getList() { - return favoritelist; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/FindUserList.java b/app/src/main/java/net/oschina/app/bean/FindUserList.java deleted file mode 100644 index 165884e01..000000000 --- a/app/src/main/java/net/oschina/app/bean/FindUserList.java +++ /dev/null @@ -1,37 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 好友实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年11月6日 上午11:17:36 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class FindUserList extends Entity implements ListEntity { - - public final static int TYPE_FANS = 0x00; - public final static int TYPE_FOLLOWER = 0x01; - - @XStreamAlias("users") - private List friendlist = new ArrayList(); - - public List getFriendlist() { - return friendlist; - } - - public void setFriendlist(List resultlist) { - this.friendlist = resultlist; - } - - @Override - public List getList() { - return friendlist; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Friend.java b/app/src/main/java/net/oschina/app/bean/Friend.java deleted file mode 100644 index eeaa23adb..000000000 --- a/app/src/main/java/net/oschina/app/bean/Friend.java +++ /dev/null @@ -1,81 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 好友实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年11月6日 上午11:37:31 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("friend") -public class Friend extends Entity { - - @XStreamAlias("userid") - private int userid; - - @XStreamAlias("name") - private String name; - - @XStreamAlias("from") - private String from; - - @XStreamAlias("portrait") - private String portrait; - - @XStreamAlias("expertise") - private String expertise; - - @XStreamAlias("gender") - private int gender; - - public int getUserid() { - return userid; - } - - public void setUserid(int userid) { - this.userid = userid; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getFrom() { - return from; - } - - public void setFrom(String from) { - this.from = from; - } - - public String getPortrait() { - return portrait; - } - - public void setPortrait(String portrait) { - this.portrait = portrait; - } - - public String getExpertise() { - return expertise; - } - - public void setExpertise(String expertise) { - this.expertise = expertise; - } - - public int getGender() { - return gender; - } - - public void setGender(int gender) { - this.gender = gender; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/FriendsList.java b/app/src/main/java/net/oschina/app/bean/FriendsList.java deleted file mode 100644 index 9c73190f1..000000000 --- a/app/src/main/java/net/oschina/app/bean/FriendsList.java +++ /dev/null @@ -1,37 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 好友实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年11月6日 上午11:17:36 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class FriendsList extends Entity implements ListEntity { - - public final static int TYPE_FANS = 0x00; - public final static int TYPE_FOLLOWER = 0x01; - - @XStreamAlias("friends") - private List friendlist = new ArrayList(); - - public List getFriendlist() { - return friendlist; - } - - public void setFriendlist(List resultlist) { - this.friendlist = resultlist; - } - - @Override - public List getList() { - return friendlist; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/ListEntity.java b/app/src/main/java/net/oschina/app/bean/ListEntity.java deleted file mode 100644 index 1581e0707..000000000 --- a/app/src/main/java/net/oschina/app/bean/ListEntity.java +++ /dev/null @@ -1,9 +0,0 @@ -package net.oschina.app.bean; - -import java.io.Serializable; -import java.util.List; - -public interface ListEntity extends Serializable { - - public List getList(); -} diff --git a/app/src/main/java/net/oschina/app/bean/LoginUserBean.java b/app/src/main/java/net/oschina/app/bean/LoginUserBean.java deleted file mode 100644 index a6d7ac9a4..000000000 --- a/app/src/main/java/net/oschina/app/bean/LoginUserBean.java +++ /dev/null @@ -1,37 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年9月27日 下午2:45:57 - * - */ - -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class LoginUserBean extends Entity { - - @XStreamAlias("result") - private Result result; - - @XStreamAlias("user") - private User user; - - public Result getResult() { - return result; - } - - public void setResult(Result result) { - this.result = result; - } - - public User getUser() { - return user; - } - - public void setUser(User user) { - this.user = user; - } - -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/bean/MessageDetail.java b/app/src/main/java/net/oschina/app/bean/MessageDetail.java deleted file mode 100644 index 222440b4d..000000000 --- a/app/src/main/java/net/oschina/app/bean/MessageDetail.java +++ /dev/null @@ -1,115 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 聊天详细信息实体类 - * @author 铂金小鸟(http://my.oschina.net/fants) - * @Created 2015年9月16日 上午4:20:01 - */ -@SuppressWarnings("serial") -@XStreamAlias("message") -public class MessageDetail extends Entity { - - //是否显示时间 - private boolean showDate; - //消息状态 - private MessageStatus status; - - @XStreamAlias("portrait") - private String portrait; - - @XStreamAlias("author") - private String author; - - @XStreamAlias("authorid") - private int authorId; - - @XStreamAlias("content") - private String content; - - @XStreamAlias("fileName") - private String fileName; - - @XStreamAlias("btype") - private int btype; - - @XStreamAlias("pubDate") - private String pubDate; - - public enum MessageStatus{ - NORMAL,SENDING,ERROR - } - - public String getPortrait() { - return portrait; - } - - public void setPortrait(String portrait) { - this.portrait = portrait; - } - - public String getAuthor() { - return author; - } - - public void setAuthor(String author) { - this.author = author; - } - - public int getAuthorId() { - return authorId; - } - - public void setAuthorId(int authorId) { - this.authorId = authorId; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getFileName() { - return fileName; - } - - public void setFileName(String fileName) { - this.fileName = fileName; - } - - public int getBtype() { - return btype; - } - - public void setBtype(int btype) { - this.btype = btype; - } - - public String getPubDate() { - return pubDate; - } - - public void setPubDate(String pubDate) { - this.pubDate = pubDate; - } - - public boolean isShowDate() { - return showDate; - } - - public void setShowDate(boolean showDate) { - this.showDate = showDate; - } - - public MessageStatus getStatus() { - return status; - } - - public void setStatus(MessageStatus status) { - this.status = status; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/MessageDetailList.java b/app/src/main/java/net/oschina/app/bean/MessageDetailList.java deleted file mode 100644 index 7684a8dcb..000000000 --- a/app/src/main/java/net/oschina/app/bean/MessageDetailList.java +++ /dev/null @@ -1,43 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -import java.util.ArrayList; -import java.util.List; - -/** - * 聊天详细信息实体类 - * @author 铂金小鸟(http://my.oschina.net/fants) - * @Created 2015年9月16日 上午4:20:01 - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class MessageDetailList extends Entity implements ListEntity { - - @XStreamAlias("allCount") - private int allCount; - - @XStreamAlias("pagesize") - private int pageSize; - - @XStreamAlias("messages") - private List messagelist = new ArrayList(); - - public int getPageSize() { - return pageSize; - } - - public int getMessageCount() { - return allCount; - } - - public List getMessagelist() { - return messagelist; - } - - @Override - public List getList() { - return messagelist; - } - -} diff --git a/app/src/main/java/net/oschina/app/bean/MessageList.java b/app/src/main/java/net/oschina/app/bean/MessageList.java deleted file mode 100644 index 63cb67eb4..000000000 --- a/app/src/main/java/net/oschina/app/bean/MessageList.java +++ /dev/null @@ -1,43 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 留言实体类列表 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月22日 下午4:38:49 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class MessageList extends Entity implements ListEntity { - - @XStreamAlias("pagesize") - private int pageSize; - - @XStreamAlias("messageCount") - private int messageCount; - - @XStreamAlias("messages") - private List messagelist = new ArrayList(); - - public int getPageSize() { - return pageSize; - } - - public int getMessageCount() { - return messageCount; - } - - public List getMessagelist() { - return messagelist; - } - - @Override - public List getList() { - return messagelist; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Messages.java b/app/src/main/java/net/oschina/app/bean/Messages.java deleted file mode 100644 index e004f82dc..000000000 --- a/app/src/main/java/net/oschina/app/bean/Messages.java +++ /dev/null @@ -1,118 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 留言实体类 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月22日 下午4:43:01 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("message") -public class Messages extends Entity { - - public final static int CLIENT_MOBILE = 2; - public final static int CLIENT_ANDROID = 3; - public final static int CLIENT_IPHONE = 4; - public final static int CLIENT_WINDOWS_PHONE = 5; - - @XStreamAlias("portrait") - private String portrait; - - @XStreamAlias("friendid") - private int friendId; - - @XStreamAlias("friendname") - private String friendName; - - @XStreamAlias("sender") - private String sender; - - @XStreamAlias("senderid") - private int senderId; - - @XStreamAlias("content") - private String content; - - @XStreamAlias("messageCount") - private int messageCount; - - @XStreamAlias("pubDate") - private String pubDate; - - @XStreamAlias("appClient") - private int appClient; - - public String getPortrait() { - return portrait; - } - - public void setPortrait(String portrait) { - this.portrait = portrait; - } - - public int getFriendId() { - return friendId; - } - - public void setFriendId(int friendId) { - this.friendId = friendId; - } - - public String getFriendName() { - return friendName; - } - - public void setFriendName(String friendName) { - this.friendName = friendName; - } - - public String getSender() { - return sender; - } - - public void setSender(String sender) { - this.sender = sender; - } - - public int getSenderId() { - return senderId; - } - - public void setSenderId(int senderId) { - this.senderId = senderId; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public int getMessageCount() { - return messageCount; - } - - public void setMessageCount(int messageCount) { - this.messageCount = messageCount; - } - - public String getPubDate() { - return pubDate; - } - - public void setPubDate(String pubDate) { - this.pubDate = pubDate; - } - - public int getAppClient() { - return appClient; - } - - public void setAppClient(int appClient) { - this.appClient = appClient; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/MyInformation.java b/app/src/main/java/net/oschina/app/bean/MyInformation.java deleted file mode 100644 index 91a2bf214..000000000 --- a/app/src/main/java/net/oschina/app/bean/MyInformation.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 我的资料实体类 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年10月30日 下午4:08:30 - * - */ - -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class MyInformation extends Base { - - @XStreamAlias("user") - private User user; - - public User getUser() { - return user; - } - - public void setUser(User user) { - this.user = user; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/News.java b/app/src/main/java/net/oschina/app/bean/News.java deleted file mode 100644 index fb1ab9a00..000000000 --- a/app/src/main/java/net/oschina/app/bean/News.java +++ /dev/null @@ -1,225 +0,0 @@ -package net.oschina.app.bean; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -import net.oschina.app.util.StringUtils; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 新闻、软件、帖子、博客实体类 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年9月28日 上午10:16:59 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("news") -public class News extends Entity { - - public final static int NEWSTYPE_NEWS = 0x00;//0 新闻 - public final static int NEWSTYPE_SOFTWARE = 0x01;//1 软件 - public final static int NEWSTYPE_POST = 0x02;//2 帖子 - public final static int NEWSTYPE_BLOG = 0x03;//3 博客 - - @XStreamAlias("title") - private String title; - - @XStreamAlias("url") - private String url; - - @XStreamAlias("body") - private String body; - - @XStreamAlias("author") - private String author; - - @XStreamAlias("authorid") - private int authorId; - - @XStreamAlias("commentcount") - private int commentCount; - - @XStreamAlias("pubdate") - private String pubDate; - - @XStreamAlias("softwarelink") - private String softwareLink; - - @XStreamAlias("softwarename") - private String softwareName; - - @XStreamAlias("favorite") - private int favorite; - - @XStreamAlias("newstype") - private NewsType newsType; - - @XStreamAlias("relativies") - private List relatives = new ArrayList(); - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getBody() { - return body; - } - - public void setBody(String body) { - this.body = body; - } - - public String getAuthor() { - return author; - } - - public void setAuthor(String author) { - this.author = author; - } - - public int getAuthorId() { - return authorId; - } - - public void setAuthorId(String authorId) { - this.authorId = StringUtils.toInt(authorId, 0); - } - - public int getCommentCount() { - return commentCount; - } - - public void setCommentCount(int commentCount) { - this.commentCount = commentCount; - } - - public String getPubDate() { - return pubDate; - } - - public void setPubDate(String pubDate) { - this.pubDate = pubDate; - } - - public String getSoftwareLink() { - return softwareLink; - } - - public void setSoftwareLink(String softwareLink) { - this.softwareLink = softwareLink; - } - - public String getSoftwareName() { - return softwareName; - } - - public void setSoftwareName(String softwareName) { - this.softwareName = softwareName; - } - - public int getFavorite() { - return favorite; - } - - public void setFavorite(int favorite) { - this.favorite = favorite; - } - - public NewsType getNewType() { - return newsType; - } - - public void setNewType(NewsType newType) { - this.newsType = newType; - } - - public List getRelatives() { - return relatives; - } - - public void setRelatives(List relatives) { - this.relatives = relatives; - } - - @XStreamAlias("newstype") - public class NewsType implements Serializable{ - @XStreamAlias("type") - private int type; - @XStreamAlias("attachment") - private String attachment; - @XStreamAlias("authoruid2") - private int authoruid2; - @XStreamAlias("eventurl") - private String eventUrl; - - public String getEventUrl() { - return eventUrl; - } - public void setEventUrl(String eventUrl) { - this.eventUrl = eventUrl; - } - public int getType() { - return type; - } - public void setType(int type) { - this.type = type; - } - public String getAttachment() { - return attachment; - } - public void setAttachment(String attachment) { - this.attachment = attachment; - } - public int getAuthoruid2() { - return authoruid2; - } - public void setAuthoruid2(int authoruid2) { - this.authoruid2 = authoruid2; - } - } - - @XStreamAlias("relative") - public class Relative implements Serializable{ - - @XStreamAlias("rtitle") - public String title; - - @XStreamAlias("rurl") - public String url; - - public String getTitle() { - return title; - } - public void setTitle(String title) { - this.title = title; - } - public String getUrl() { - return url; - } - public void setUrl(String url) { - this.url = url; - } - } -} diff --git a/app/src/main/java/net/oschina/app/bean/NewsDetail.java b/app/src/main/java/net/oschina/app/bean/NewsDetail.java deleted file mode 100644 index ce68418a3..000000000 --- a/app/src/main/java/net/oschina/app/bean/NewsDetail.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 资讯详情 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年10月11日 下午3:28:33 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class NewsDetail extends Entity { - - @XStreamAlias("news") - private News news; - - public News getNews() { - return news; - } - - public void setNews(News news) { - this.news = news; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/NewsList.java b/app/src/main/java/net/oschina/app/bean/NewsList.java deleted file mode 100644 index c353462a0..000000000 --- a/app/src/main/java/net/oschina/app/bean/NewsList.java +++ /dev/null @@ -1,71 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 新闻列表实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年9月27日 下午5:55:58 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class NewsList extends Entity implements ListEntity { - - public final static String PREF_READED_NEWS_LIST = "readed_news_list.pref"; - - public final static int CATALOG_ALL = 1; - public final static int CATALOG_INTEGRATION = 2; - public final static int CATALOG_SOFTWARE = 3; - - public final static int CATALOG_WEEK = 4; - public final static int CATALOG_MONTH = 5; - - @XStreamAlias("catalog") - private int catalog; - - @XStreamAlias("pagesize") - private int pageSize; - - @XStreamAlias("newscount") - private int newsCount; - - @XStreamAlias("newslist") - private List list = new ArrayList(); - - public int getCatalog() { - return catalog; - } - - public void setCatalog(int catalog) { - this.catalog = catalog; - } - - public int getPageSize() { - return pageSize; - } - - public void setPageSize(int pageSize) { - this.pageSize = pageSize; - } - - public int getNewsCount() { - return newsCount; - } - - public void setNewsCount(int newsCount) { - this.newsCount = newsCount; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/NotebookData.java b/app/src/main/java/net/oschina/app/bean/NotebookData.java deleted file mode 100644 index 1e429ece9..000000000 --- a/app/src/main/java/net/oschina/app/bean/NotebookData.java +++ /dev/null @@ -1,159 +0,0 @@ -package net.oschina.app.bean; - -import java.io.Serializable; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 便签数据bean(有重载equals()方法) - * - * @author kymjs (https://github.com/kymjs) - * - */ -@XStreamAlias("sticky") -public class NotebookData extends Entity implements Serializable, - Comparable { - private static final long serialVersionUID = 1L; - - @XStreamAlias("id") - private int id; - @XStreamAlias("iid") - private int iid; - @XStreamAlias("timestamp") - private String unixTime; - @XStreamAlias("updateTime") - private String date; - @XStreamAlias("content") - private String content; - @XStreamAlias("color") - private String colorText; - - private String serverUpdateTime; // 服务器端需要,客户端无用 - private int color; - - @Override - public boolean equals(Object o) { - if (super.equals(o)) { - return true; - } else { - if (o instanceof NotebookData) { - NotebookData data = (NotebookData) o; - try { - return (this.id == data.getId()) - && (this.iid == data.getIid()) - && (this.unixTime == data.getUnixTime()) - && (this.date.equals(data.getDate())) - && (this.content == data.getContent()) - && (this.color == data.getColor()); - } catch (NullPointerException e) { - return false; - } - } else { - return false; - } - } - } - - @Override - public int getId() { - return id; - } - - @Override - public void setId(int id) { - this.id = id; - } - - public int getIid() { - return iid; - } - - public void setIid(int iid) { - this.iid = iid; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public String getUnixTime() { - return unixTime; - } - - public void setUnixTime(String time) { - this.unixTime = time; - setServerUpdateTime(time); - } - - public String getColorText() { - return colorText; - } - - public void setColorText(String color) { - this.colorText = color; - } - - public int getColor() { - // 客户端始终以当前手机上的颜色为准 - if ("blue".equals(colorText)) { - this.color = 3; - } else if ("red".equals(colorText)) { - this.color = 2; - } else if ("yellow".equals(colorText)) { - this.color = 1; - } else if ("purple".equals(colorText)) { - this.color = 4; - } else if ("green".equals(colorText)) { - this.color = 0; - } - return color; - } - - public String getServerUpdateTime() { - return serverUpdateTime; - } - - public void setServerUpdateTime(String serverUpdateTime) { - this.serverUpdateTime = serverUpdateTime; - } - - public void setColor(int color) { - switch (color) { - case 0: - colorText = "green"; - break; - case 1: - colorText = "yellow"; - break; - case 2: - colorText = "red"; - break; - case 3: - colorText = "blue"; - break; - case 4: - colorText = "purple"; - break; - default: - this.color = color; - break; - } - } - - @Override - public int compareTo(NotebookData another) { - return this.iid - another.getIid(); - } -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/bean/NotebookDataList.java b/app/src/main/java/net/oschina/app/bean/NotebookDataList.java deleted file mode 100644 index 5a9c5a790..000000000 --- a/app/src/main/java/net/oschina/app/bean/NotebookDataList.java +++ /dev/null @@ -1,25 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -@XStreamAlias("oschina") -public class NotebookDataList extends Entity implements - ListEntity { - - private static final long serialVersionUID = 1L; - @XStreamAlias("stickies") - private List list = new ArrayList(); - - @Override - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/bean/Notice.java b/app/src/main/java/net/oschina/app/bean/Notice.java deleted file mode 100644 index 8d5717bbc..000000000 --- a/app/src/main/java/net/oschina/app/bean/Notice.java +++ /dev/null @@ -1,81 +0,0 @@ -package net.oschina.app.bean; - -import java.io.Serializable; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 通知信息实体类 - * - * @author liux (http://my.oschina.net/liux) - * @version 1.0 - * @created 2012-3-21 - */ -@SuppressWarnings("serial") -@XStreamAlias("notice") -public class Notice implements Serializable { - - public final static String UTF8 = "UTF-8"; - public final static String NODE_ROOT = "oschina"; - - public final static int TYPE_ATME = 1; - public final static int TYPE_MESSAGE = 2; - public final static int TYPE_COMMENT = 3; - public final static int TYPE_NEWFAN = 4; - public final static int TYPE_NEWLIKE = 5; - - @XStreamAlias("atmeCount") - private int atmeCount; - - @XStreamAlias("msgCount") - private int msgCount; - - @XStreamAlias("reviewCount") - private int reviewCount; - - @XStreamAlias("newFansCount") - private int newFansCount; - - @XStreamAlias("newLikeCount") - private int newLikeCount; - - public int getAtmeCount() { - return atmeCount; - } - - public void setAtmeCount(int atmeCount) { - this.atmeCount = atmeCount; - } - - public int getMsgCount() { - return msgCount; - } - - public void setMsgCount(int msgCount) { - this.msgCount = msgCount; - } - - public int getReviewCount() { - return reviewCount; - } - - public void setReviewCount(int reviewCount) { - this.reviewCount = reviewCount; - } - - public int getNewFansCount() { - return newFansCount; - } - - public void setNewFansCount(int newFansCount) { - this.newFansCount = newFansCount; - } - - public int getNewLikeCount() { - return newLikeCount; - } - - public void setNewLikeCount(int newLikeCount) { - this.newLikeCount = newLikeCount; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/NoticeDetail.java b/app/src/main/java/net/oschina/app/bean/NoticeDetail.java deleted file mode 100644 index 776fe5fb7..000000000 --- a/app/src/main/java/net/oschina/app/bean/NoticeDetail.java +++ /dev/null @@ -1,27 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 通知实体类 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年10月27日 下午2:28:42 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class NoticeDetail extends Base { - - @XStreamAlias("result") - private Result result; - - public Result getResult() { - return result; - } - - public void setResult(Result result) { - this.result = result; - } - - -} diff --git a/app/src/main/java/net/oschina/app/bean/OpenIdCatalog.java b/app/src/main/java/net/oschina/app/bean/OpenIdCatalog.java deleted file mode 100644 index 7d6efe9cb..000000000 --- a/app/src/main/java/net/oschina/app/bean/OpenIdCatalog.java +++ /dev/null @@ -1,12 +0,0 @@ -package net.oschina.app.bean; - -/** - * Created by zhangdeyi on 15/7/22. - */ -public class OpenIdCatalog { - - public static final String QQ = "qq"; - public static final String WEIBO = "weibo"; - public static final String WECHAT = "wechat"; - public static final String GITHUB = "github"; -} diff --git a/app/src/main/java/net/oschina/app/bean/Post.java b/app/src/main/java/net/oschina/app/bean/Post.java deleted file mode 100644 index b6441f74a..000000000 --- a/app/src/main/java/net/oschina/app/bean/Post.java +++ /dev/null @@ -1,229 +0,0 @@ -package net.oschina.app.bean; - -import java.io.Serializable; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamImplicit; - -/** - * 帖子实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月9日 下午6:02:47 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("post") -public class Post extends Entity { - - public final static int CATALOG_ASK = 1; - public final static int CATALOG_SHARE = 2; - public final static int CATALOG_OTHER = 3; - public final static int CATALOG_JOB = 4; - public final static int CATALOG_SITE = 5; - - @XStreamAlias("title") - private String title; - - @XStreamAlias("portrait") - private String portrait; - - @XStreamAlias("url") - private String url; - - @XStreamAlias("body") - private String body; - - @XStreamAlias("author") - private String author; - - @XStreamAlias("authorid") - private int authorId; - - @XStreamAlias("answerCount") - private int answerCount; - - @XStreamAlias("viewCount") - private int viewCount; - - @XStreamAlias("pubDate") - private String pubDate; - - @XStreamAlias("catalog") - private int catalog; - - @XStreamAlias("isnoticeme") - private int isNoticeMe; - - @XStreamAlias("favorite") - private int favorite; - - @XStreamAlias("tags") - private Tags tags; - - @XStreamAlias("answer") - private Answer answer; - - @XStreamAlias("event") - private Event event; - - public Event getEvent() { - return event; - } - - public void setEvent(Event event) { - this.event = event; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getPortrait() { - return portrait; - } - - public void setPortrait(String portrait) { - this.portrait = portrait; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getBody() { - return body; - } - - public void setBody(String body) { - this.body = body; - } - - public String getAuthor() { - return author; - } - - public void setAuthor(String author) { - this.author = author; - } - - public int getAuthorId() { - return authorId; - } - - public void setAuthorId(int authorId) { - this.authorId = authorId; - } - - public int getAnswerCount() { - return answerCount; - } - - public void setAnswerCount(int answerCount) { - this.answerCount = answerCount; - } - - public int getViewCount() { - return viewCount; - } - - public void setViewCount(int viewCount) { - this.viewCount = viewCount; - } - - public String getPubDate() { - return pubDate; - } - - public void setPubDate(String pubDate) { - this.pubDate = pubDate; - } - - public int getCatalog() { - return catalog; - } - - public void setCatalog(int catalog) { - this.catalog = catalog; - } - - public int getIsNoticeMe() { - return isNoticeMe; - } - - public void setIsNoticeMe(int isNoticeMe) { - this.isNoticeMe = isNoticeMe; - } - - public int getFavorite() { - return favorite; - } - - public void setFavorite(int favorite) { - this.favorite = favorite; - } - - public Post.Tags getTags() { - return tags; - } - - public void setTags(Tags tags) { - this.tags = tags; - } - - public Answer getAnswer() { - return answer; - } - - public void setAnswer(Answer answer) { - this.answer = answer; - } - - @XStreamAlias("answer") - public class Answer implements Serializable { - - @XStreamAlias("name") - private String name; - - @XStreamAlias("time") - private String time; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getTime() { - return time; - } - - public void setTime(String time) { - this.time = time; - } - } - - public class Tags implements Serializable { - @XStreamImplicit(itemFieldName="tag") - private List tags; - - public List getTags() { - return tags; - } - - public void setTags(List tags) { - this.tags = tags; - } - } -} diff --git a/app/src/main/java/net/oschina/app/bean/PostDetail.java b/app/src/main/java/net/oschina/app/bean/PostDetail.java deleted file mode 100644 index 017c5bf86..000000000 --- a/app/src/main/java/net/oschina/app/bean/PostDetail.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 帖子详情 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年10月11日 下午3:28:33 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class PostDetail extends Entity { - - @XStreamAlias("post") - private Post post; - - public Post getPost() { - return post; - } - - public void setPost(Post post) { - this.post = post; - } - -} diff --git a/app/src/main/java/net/oschina/app/bean/PostList.java b/app/src/main/java/net/oschina/app/bean/PostList.java deleted file mode 100644 index 06c848db8..000000000 --- a/app/src/main/java/net/oschina/app/bean/PostList.java +++ /dev/null @@ -1,42 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 帖子实体类列表 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月9日 下午6:10:11 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class PostList extends Entity implements ListEntity { - - public final static String PREF_READED_POST_LIST = "readed_post_list.pref"; - - @XStreamAlias("pagesize") - private int pageSize; - - @XStreamAlias("postCount") - private int postCount; - - @XStreamAlias("posts") - private List postlist = new ArrayList(); - - public int getPageSize() { - return pageSize; - } - public int getPostCount() { - return postCount; - } - public List getPostlist() { - return postlist; - } - @Override - public List getList() { - return postlist; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Report.java b/app/src/main/java/net/oschina/app/bean/Report.java deleted file mode 100644 index 02c7e9cca..000000000 --- a/app/src/main/java/net/oschina/app/bean/Report.java +++ /dev/null @@ -1,60 +0,0 @@ -package net.oschina.app.bean; - -/** - * 举报实体类 - * - * @author 火蚁(http://my.oschina.net/LittleDY) - * @version 1.0 - * @created 2014-02-13 - */ -public class Report extends Entity { - private static final long serialVersionUID = 1L; - - public static final byte TYPE_QUESTION = 0x02;// 问题 - - private int objId;//需要举报的id - private String url;// 举报的链接地址 - private byte objType;// 举报的类型 - private int reason;// 原因 - private String otherReason;// 其他原因 - - public int getObjId() { - return objId; - } - - public void setObjId(int objId) { - this.objId = objId; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public byte getObjType() { - return objType; - } - - public void setObjType(byte objType) { - this.objType = objType; - } - - public int getReason() { - return reason; - } - - public void setReason(int reason) { - this.reason = reason; - } - - public String getOtherReason() { - return otherReason; - } - - public void setOtherReason(String otherReason) { - this.otherReason = otherReason; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Result.java b/app/src/main/java/net/oschina/app/bean/Result.java deleted file mode 100644 index 3f0a4eeab..000000000 --- a/app/src/main/java/net/oschina/app/bean/Result.java +++ /dev/null @@ -1,43 +0,0 @@ -package net.oschina.app.bean; - -import java.io.Serializable; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 数据操作结果实体类 - * - * @author liux (http://my.oschina.net/liux) - * @version 1.0 - * @created 2012-3-21 - */ -@SuppressWarnings("serial") -@XStreamAlias("result") -public class Result implements Serializable { - - @XStreamAlias("errorCode") - private int errorCode; - - @XStreamAlias("errorMessage") - private String errorMessage; - - public boolean OK() { - return errorCode == 1; - } - - public int getErrorCode() { - return errorCode; - } - - public void setErrorCode(int errorCode) { - this.errorCode = errorCode; - } - - public String getErrorMessage() { - return errorMessage; - } - - public void setErrorMessage(String errorMessage) { - this.errorMessage = errorMessage; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/ResultBean.java b/app/src/main/java/net/oschina/app/bean/ResultBean.java deleted file mode 100644 index 687c82a5a..000000000 --- a/app/src/main/java/net/oschina/app/bean/ResultBean.java +++ /dev/null @@ -1,81 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 操作结果实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年10月14日 下午2:59:27 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class ResultBean extends Base { - - @XStreamAlias("result") - private Result result; - - @XStreamAlias("notice") - private Notice notice; - - @XStreamAlias("comment") - private Comment comment; - - //现在pub_message接口返回的是comment对象。 - //@XStreamAlias("message") - private MessageDetail message; - - @XStreamAlias("relation") - private int relation; - - public Result getResult() { - return result; - } - - public void setResult(Result result) { - this.result = result; - } - - public int getRelation() { - return relation; - } - - public void setRelation(int relation) { - this.relation = relation; - } - - public Notice getNotice() { - return notice; - } - - public void setNotice(Notice notice) { - this.notice = notice; - } - - public Comment getComment() { - return comment; - } - - public void setComment(Comment comment) { - this.comment = comment; - } - - public MessageDetail getMessage() { - //现在pub_message接口返回的是comment对象。所以要转成message - message = new MessageDetail(); - if(comment!=null) { - message.setId(comment.getId()); - message.setPortrait(comment.getPortrait()); - message.setAuthor(comment.getAuthor()); - message.setAuthorId(comment.getId()); - message.setContent(comment.getContent()); - message.setPubDate(comment.getPubDate()); - } - return message; - } - - public void setMessage(MessageDetail message) { - this.message = message; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/SearchList.java b/app/src/main/java/net/oschina/app/bean/SearchList.java deleted file mode 100644 index 4e212dd92..000000000 --- a/app/src/main/java/net/oschina/app/bean/SearchList.java +++ /dev/null @@ -1,43 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 搜索实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年12月5日 上午11:19:44 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class SearchList extends Entity implements ListEntity { - - public final static String CATALOG_ALL = "all"; - public final static String CATALOG_NEWS = "news"; - public final static String CATALOG_POST = "post"; - public final static String CATALOG_SOFTWARE = "software"; - public final static String CATALOG_BLOG = "blog"; - - @XStreamAlias("pagesize") - private int pageSize; - - @XStreamAlias("results") - private List list = new ArrayList(); - - public int getPageSize() { - return pageSize; - } - - @Override - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/SearchResult.java b/app/src/main/java/net/oschina/app/bean/SearchResult.java deleted file mode 100644 index e414f412c..000000000 --- a/app/src/main/java/net/oschina/app/bean/SearchResult.java +++ /dev/null @@ -1,88 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 搜索结果实体类 - */ -@SuppressWarnings("serial") -@XStreamAlias("result") -public class SearchResult extends Entity { - - @XStreamAlias("objid") - private int id; - - @XStreamAlias("type") - private String type; - - @XStreamAlias("title") - private String title; - - @XStreamAlias("description") - private String description; - - @XStreamAlias("url") - private String url; - - @XStreamAlias("pubDate") - private String pubDate; - - @XStreamAlias("author") - private String author; - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getPubDate() { - return pubDate; - } - - public void setPubDate(String pubDate) { - this.pubDate = pubDate; - } - - public String getAuthor() { - return author; - } - - public void setAuthor(String author) { - this.author = author; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/ShakeObject.java b/app/src/main/java/net/oschina/app/bean/ShakeObject.java deleted file mode 100644 index 865de1269..000000000 --- a/app/src/main/java/net/oschina/app/bean/ShakeObject.java +++ /dev/null @@ -1,113 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -@XStreamAlias("oschina") -public class ShakeObject { - - @XStreamAlias("randomtype") - private String randomtype; // 数据类型 - @XStreamAlias("id") - private String id; // 数据id - @XStreamAlias("title") - private String title; // 帖子标题 - @XStreamAlias("detail") - private String detail; // 内容 - @XStreamAlias("author") - private String author; // 作者 - @XStreamAlias("authorid") - private String authorid; // 作者id - @XStreamAlias("image") - private String image; // 头像地址 - @XStreamAlias("pubDate") - private String pubDate; // 收录日期 - @XStreamAlias("commentCount") - private String commentCount; - @XStreamAlias("url") - private String url; - - public static final String RANDOMTYPE_NEWS = "1"; - public static final String RANDOMTYPE_BLOG = "2"; - public static final String RANDOMTYPE_SOFTWARE = "3"; - - public String getRandomtype() { - return randomtype; - } - - public void setRandomtype(String randomtype) { - this.randomtype = randomtype; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getDetail() { - return detail; - } - - public void setDetail(String detail) { - this.detail = detail; - } - - public String getAuthor() { - return author; - } - - public void setAuthor(String author) { - this.author = author; - } - - public String getAuthorid() { - return authorid; - } - - public void setAuthorid(String authorid) { - this.authorid = authorid; - } - - public String getImage() { - return image; - } - - public void setImage(String image) { - this.image = image; - } - - public String getPubDate() { - return pubDate; - } - - public void setPubDate(String pubDate) { - this.pubDate = pubDate; - } - - public String getCommentCount() { - return commentCount; - } - - public void setCommentCount(String commentCount) { - this.commentCount = commentCount; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - -} diff --git a/app/src/main/java/net/oschina/app/bean/SimpleBackPage.java b/app/src/main/java/net/oschina/app/bean/SimpleBackPage.java deleted file mode 100644 index 7e40b7f95..000000000 --- a/app/src/main/java/net/oschina/app/bean/SimpleBackPage.java +++ /dev/null @@ -1,185 +0,0 @@ -package net.oschina.app.bean; - -import net.oschina.app.R; -import net.oschina.app.fragment.AboutOSCFragment; -import net.oschina.app.fragment.ActiveFragment; -import net.oschina.app.fragment.BrowserFragment; -import net.oschina.app.fragment.CommentFrament; -import net.oschina.app.fragment.EventAppliesFragment; -import net.oschina.app.fragment.EventFragment; -import net.oschina.app.fragment.FeedBackFragment; -import net.oschina.app.fragment.MessageDetailFragment; -import net.oschina.app.fragment.MyInformationFragment; -import net.oschina.app.fragment.MyInformationFragmentDetail; -import net.oschina.app.fragment.QuestionTagFragment; -import net.oschina.app.fragment.SettingsFragment; -import net.oschina.app.fragment.SettingsNotificationFragment; -import net.oschina.app.fragment.SoftWareTweetsFrament; -import net.oschina.app.fragment.TweetLikeUsersFragment; -import net.oschina.app.fragment.TweetPubFragment; -import net.oschina.app.fragment.TweetRecordFragment; -import net.oschina.app.fragment.TweetsFragment; -import net.oschina.app.fragment.UserBlogFragment; -import net.oschina.app.fragment.UserCenterFragment; -import net.oschina.app.team.fragment.NoteBookFragment; -import net.oschina.app.team.fragment.NoteEditFragment; -import net.oschina.app.team.fragment.TeamActiveFragment; -import net.oschina.app.team.fragment.TeamDiaryDetailFragment; -import net.oschina.app.team.fragment.TeamDiscussFragment; -import net.oschina.app.team.fragment.TeamIssueFragment; -import net.oschina.app.team.fragment.TeamMemberInformationFragment; -import net.oschina.app.team.fragment.TeamProjectFragment; -import net.oschina.app.team.fragment.TeamProjectMemberSelectFragment; -import net.oschina.app.team.viewpagefragment.MyIssuePagerfragment; -import net.oschina.app.team.viewpagefragment.TeamDiaryFragment; -import net.oschina.app.team.viewpagefragment.TeamIssueViewPageFragment; -import net.oschina.app.team.viewpagefragment.TeamProjectViewPagerFragment; -import net.oschina.app.viewpagerfragment.BlogViewPagerFragment; -import net.oschina.app.viewpagerfragment.EventViewPagerFragment; -import net.oschina.app.viewpagerfragment.FriendsViewPagerFragment; -import net.oschina.app.viewpagerfragment.NoticeViewPagerFragment; -import net.oschina.app.viewpagerfragment.OpensourceSoftwareFragment; -import net.oschina.app.viewpagerfragment.QuestViewPagerFragment; -import net.oschina.app.viewpagerfragment.SearchViewPageFragment; -import net.oschina.app.viewpagerfragment.UserFavoriteViewPagerFragment; - -public enum SimpleBackPage { - - COMMENT(1, R.string.actionbar_title_comment, CommentFrament.class), - - QUEST(2, R.string.actionbar_title_questions, QuestViewPagerFragment.class), - - TWEET_PUB(3, R.string.actionbar_title_tweetpub, TweetPubFragment.class), - - SOFTWARE_TWEETS(4, R.string.actionbar_title_softtweet, - SoftWareTweetsFrament.class), - - USER_CENTER(5, R.string.actionbar_title_user_center, - UserCenterFragment.class), - - USER_BLOG(6, R.string.actionbar_title_user_blog, UserBlogFragment.class), - - MY_INFORMATION(7, R.string.actionbar_title_my_information, - MyInformationFragment.class), - - MY_ACTIVE(8, R.string.actionbar_title_active, ActiveFragment.class), - - MY_MES(9, R.string.actionbar_title_mes, NoticeViewPagerFragment.class), - - OPENSOURCE_SOFTWARE(10, R.string.actionbar_title_softwarelist, - OpensourceSoftwareFragment.class), - - MY_FRIENDS(11, R.string.actionbar_title_my_friends, - FriendsViewPagerFragment.class), - - QUESTION_TAG(12, R.string.actionbar_title_question, - QuestionTagFragment.class), - - MESSAGE_DETAIL(13, R.string.actionbar_title_message_detail, - MessageDetailFragment.class), - - USER_FAVORITE(14, R.string.actionbar_title_user_favorite, - UserFavoriteViewPagerFragment.class), - - SETTING(15, R.string.actionbar_title_setting, SettingsFragment.class), - - SETTING_NOTIFICATION(16, R.string.actionbar_title_setting_notification, - SettingsNotificationFragment.class), - - ABOUT_OSC(17, R.string.actionbar_title_about_osc, AboutOSCFragment.class), - - BLOG(18, R.string.actionbar_title_blog_area, BlogViewPagerFragment.class), - - RECORD(19, R.string.actionbar_title_tweetpub, TweetRecordFragment.class), - - SEARCH(20, R.string.actionbar_title_search, SearchViewPageFragment.class), - - EVENT_LIST(21, R.string.actionbar_title_event, EventViewPagerFragment.class), - - EVENT_APPLY(22, R.string.actionbar_title_event_apply, - EventAppliesFragment.class), - - SAME_CITY(23, R.string.actionbar_title_same_city, EventFragment.class), - - NOTE(24, R.string.actionbar_title_note, NoteBookFragment.class), - - NOTE_EDIT(25, R.string.actionbar_title_noteedit, NoteEditFragment.class), - - BROWSER(26, R.string.app_name, BrowserFragment.class), - - DYNAMIC(27, R.string.team_dynamic, TeamActiveFragment.class), - - MY_INFORMATION_DETAIL(28, R.string.actionbar_title_my_information, - MyInformationFragmentDetail.class), - - FEED_BACK(29, R.string.str_feedback_title, FeedBackFragment.class), - - TEAM_USER_INFO(30, R.string.str_team_userinfo, - TeamMemberInformationFragment.class), - - MY_ISSUE_PAGER(31, R.string.str_team_my_issue, MyIssuePagerfragment.class), - - TEAM_PROJECT_MAIN(32, 0, TeamProjectViewPagerFragment.class), - - TEAM_ISSUECATALOG_ISSUE_LIST(33, 0, TeamIssueFragment.class), - - TEAM_ACTIVE(34, R.string.team_actvie, TeamActiveFragment.class), - - TEAM_ISSUE(35, R.string.team_issue, TeamIssueViewPageFragment.class), - - TEAM_DISCUSS(36, R.string.team_discuss, TeamDiscussFragment.class), - - TEAM_DIRAY(37, R.string.team_diary, TeamDiaryFragment.class), - - TEAM_DIRAY_DETAIL(38, R.string.team_diary_detail, TeamDiaryDetailFragment.class), - - TEAM_PROJECT_MEMBER_SELECT(39, 0, TeamProjectMemberSelectFragment.class), - - TEAM_PROJECT(40, R.string.team_project, TeamProjectFragment.class), - - TWEET_LIKE_USER_LIST(41, 0, TweetLikeUsersFragment.class), - - TWEET_TOPIC_LIST(42, 0, TweetsFragment.class); - - private int title; - private Class clz; - private int value; - - private SimpleBackPage(int value, int title, Class clz) { - this.value = value; - this.title = title; - this.clz = clz; - } - - public int getTitle() { - return title; - } - - public void setTitle(int title) { - this.title = title; - } - - public Class getClz() { - return clz; - } - - public void setClz(Class clz) { - this.clz = clz; - } - - public int getValue() { - return value; - } - - public void setValue(int value) { - this.value = value; - } - - public static SimpleBackPage getPageByValue(int val) { - for (SimpleBackPage p : values()) { - if (p.getValue() == val) - return p; - } - return null; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/SingInResult.java b/app/src/main/java/net/oschina/app/bean/SingInResult.java deleted file mode 100644 index b4396268d..000000000 --- a/app/src/main/java/net/oschina/app/bean/SingInResult.java +++ /dev/null @@ -1,67 +0,0 @@ -package net.oschina.app.bean; - -import net.oschina.app.AppException; - -import org.json.JSONException; -import org.json.JSONObject; - -/** - * 签到返回结果实体类 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月22日 下午1:43:13 - * - */ -public class SingInResult { - - public final static String NODE_MES = "msg"; - public final static String NODE_ERROR = "error"; - - private String message;// 成功消息 - private String errorMes;// 错误消息 - private boolean ok;// 是否成功 - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } - - public String getErrorMes() { - return errorMes; - } - - public void setErrorMes(String errorMes) { - this.errorMes = errorMes; - } - - public boolean isOk() { - return ok; - } - - public void setOk(boolean ok) { - this.ok = ok; - } - - public static SingInResult parse(String jsonStr) throws AppException { - SingInResult jsonResult = new SingInResult(); - try { - JSONObject jsonObject = new JSONObject(jsonStr); - // 如果有错误信息则表示不成功 - if (jsonObject.isNull(NODE_ERROR)) { - jsonResult.setOk(true); - } - if (!jsonObject.isNull(NODE_ERROR)) { - jsonResult.setErrorMes(jsonObject.getString(NODE_ERROR)); - } - if (!jsonObject.isNull(NODE_MES)) { - jsonResult.setMessage(jsonObject.getString(NODE_MES)); - } - } catch (JSONException e) { - // 抛出一个json解析错误的异常 - throw AppException.json(e); - } - return jsonResult; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Software.java b/app/src/main/java/net/oschina/app/bean/Software.java deleted file mode 100644 index 3564a489f..000000000 --- a/app/src/main/java/net/oschina/app/bean/Software.java +++ /dev/null @@ -1,202 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 软件实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月23日 下午3:03:25 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("software") -public class Software extends Entity { - - @XStreamAlias("title") - private String title; - - @XStreamAlias("author") - private String author; - - @XStreamAlias("authorid") - private int authorId; - - @XStreamAlias("recommended") - private int recommended; - - @XStreamAlias("extensiontitle") - private String extensionTitle; - - @XStreamAlias("license") - private String license; - - @XStreamAlias("body") - private String body; - - @XStreamAlias("homepage") - private String homepage; - - @XStreamAlias("document") - private String document; - - @XStreamAlias("download") - private String download; - - @XStreamAlias("logo") - private String logo; - - @XStreamAlias("language") - private String language; - - @XStreamAlias("os") - private String os; - - @XStreamAlias("recordtime") - private String recordtime; - - @XStreamAlias("url") - private String url; - - @XStreamAlias("favorite") - private int favorite; - - @XStreamAlias("tweetCount") - private int tweetCount; - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getAuthor() { - return author; - } - - public void setAuthor(String author) { - this.author = author; - } - - public int getAuthorId() { - return authorId; - } - - public void setAuthorId(int authorId) { - this.authorId = authorId; - } - - public int getRecommended() { - return recommended; - } - - public void setRecommended(int recommended) { - this.recommended = recommended; - } - - public String getExtensionTitle() { - return extensionTitle; - } - - public void setExtensionTitle(String extensionTitle) { - this.extensionTitle = extensionTitle; - } - - public String getLicense() { - return license; - } - - public void setLicense(String license) { - this.license = license; - } - - public String getBody() { - return body; - } - - public void setBody(String body) { - this.body = body; - } - - public String getHomepage() { - return homepage; - } - - public void setHomepage(String homepage) { - this.homepage = homepage; - } - - public String getDocument() { - return document; - } - - public void setDocument(String document) { - this.document = document; - } - - public String getDownload() { - return download; - } - - public void setDownload(String download) { - this.download = download; - } - - public String getLogo() { - return logo; - } - - public void setLogo(String logo) { - this.logo = logo; - } - - public String getLanguage() { - return language; - } - - public void setLanguage(String language) { - this.language = language; - } - - public String getOs() { - return os; - } - - public void setOs(String os) { - this.os = os; - } - - public String getRecordtime() { - return recordtime; - } - - public void setRecordtime(String recordtime) { - this.recordtime = recordtime; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public int getFavorite() { - return favorite; - } - - public void setFavorite(int favorite) { - this.favorite = favorite; - } - - public int getTweetCount() { - return tweetCount; - } - - public void setTweetCount(int tweetCount) { - this.tweetCount = tweetCount; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/SoftwareCatalogList.java b/app/src/main/java/net/oschina/app/bean/SoftwareCatalogList.java deleted file mode 100644 index c14e52a51..000000000 --- a/app/src/main/java/net/oschina/app/bean/SoftwareCatalogList.java +++ /dev/null @@ -1,67 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 开源软件分类列表实体 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年12月2日 上午10:54:10 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class SoftwareCatalogList extends Entity implements ListEntity { - - @XStreamAlias("softwarecount") - private int softwarecount; - @XStreamAlias("softwareTypes") - private List softwarecataloglist = new ArrayList(); - - public int getSoftwarecount() { - return softwarecount; - } - - public void setSoftwarecount(int softwarecount) { - this.softwarecount = softwarecount; - } - - public List getSoftwarecataloglist() { - return softwarecataloglist; - } - - public void setSoftwarecataloglist(List softwarecataloglist) { - this.softwarecataloglist = softwarecataloglist; - } - - @Override - public List getList() { - return softwarecataloglist; - } - - @XStreamAlias("softwareType") - public class SoftwareType extends Entity { - - @XStreamAlias("name") - private String name; - @XStreamAlias("tag") - private int tag; - - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public int getTag() { - return tag; - } - public void setTag(int tag) { - this.tag = tag; - } - - } - -} diff --git a/app/src/main/java/net/oschina/app/bean/SoftwareDec.java b/app/src/main/java/net/oschina/app/bean/SoftwareDec.java deleted file mode 100644 index 74db5284a..000000000 --- a/app/src/main/java/net/oschina/app/bean/SoftwareDec.java +++ /dev/null @@ -1,45 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 软件列表 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2015年1月20日 下午3:34:52 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("software") -public class SoftwareDec extends Entity { - @XStreamAlias("name") - private String name; - @XStreamAlias("description") - private String description; - @XStreamAlias("url") - private String url; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/SoftwareDetail.java b/app/src/main/java/net/oschina/app/bean/SoftwareDetail.java deleted file mode 100644 index b4d7689a1..000000000 --- a/app/src/main/java/net/oschina/app/bean/SoftwareDetail.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 软件详情实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年10月23日 下午3:10:54 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class SoftwareDetail extends Entity { - - @XStreamAlias("software") - private Software software; - - public Software getSoftware() { - return software; - } - - public void setSoftware(Software software) { - this.software = software; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/SoftwareList.java b/app/src/main/java/net/oschina/app/bean/SoftwareList.java deleted file mode 100644 index bc5bd6e21..000000000 --- a/app/src/main/java/net/oschina/app/bean/SoftwareList.java +++ /dev/null @@ -1,54 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class SoftwareList extends Entity implements ListEntity { - - public final static String PREF_READED_SOFTWARE_LIST = "readed_software_list.pref"; - - public final static String CATALOG_RECOMMEND = "recommend"; - public final static String CATALOG_TIME = "time"; - public final static String CATALOG_VIEW = "view"; - public final static String CATALOG_LIST_CN = "list_cn"; - - @XStreamAlias("softwarecount") - private int softwarecount; - @XStreamAlias("pagesize") - private int pagesize; - @XStreamAlias("softwares") - private List softwarelist = new ArrayList(); - - public int getSoftwarecount() { - return softwarecount; - } - - public void setSoftwarecount(int softwarecount) { - this.softwarecount = softwarecount; - } - - public int getPagesize() { - return pagesize; - } - - public void setPagesize(int pagesize) { - this.pagesize = pagesize; - } - - public List getSoftwarelist() { - return softwarelist; - } - - public void setSoftwarelist(List softwarelist) { - this.softwarelist = softwarelist; - } - - @Override - public List getList() { - return softwarelist; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/Tweet.java b/app/src/main/java/net/oschina/app/bean/Tweet.java deleted file mode 100644 index 38de54d17..000000000 --- a/app/src/main/java/net/oschina/app/bean/Tweet.java +++ /dev/null @@ -1,355 +0,0 @@ -package net.oschina.app.bean; - -import android.content.Context; -import android.os.Bundle; -import android.os.Parcel; -import android.os.Parcelable; -import android.text.SpannableString; -import android.text.SpannableStringBuilder; -import android.text.TextPaint; -import android.text.method.LinkMovementMethod; -import android.text.style.ClickableSpan; -import android.view.View; -import android.widget.TextView; -import android.widget.TextView.BufferType; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -import net.oschina.app.AppContext; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.util.UIHelper; - -import java.util.ArrayList; -import java.util.List; - -/** - * 动弹实体类 - * - * @author liux (http://my.oschina.net/liux),kymjs(kymjs123@gmail.com) - * @version 1.1 添加语音动弹功能 - * @created 2012-3-21 - * @changed 2014-12-1 - */ -@SuppressWarnings("serial") -@XStreamAlias("tweet") -public class Tweet extends Entity implements Parcelable { - - @XStreamAlias("portrait") - private String portrait; - @XStreamAlias("author") - private String author; - @XStreamAlias("authorid") - private int authorid; - @XStreamAlias("body") - private String body; - @XStreamAlias("appclient") - private int appclient; - @XStreamAlias("commentCount") - private String commentCount; - @XStreamAlias("pubDate") - private String pubDate; - @XStreamAlias("imgSmall") - private String imgSmall; - @XStreamAlias("imgBig") - private String imgBig; - @XStreamAlias("attach") - private String attach; - - @XStreamAlias("likeCount") - private int likeCount; - - @XStreamAlias("isLike") - private int isLike; - - @XStreamAlias("likeList") - private List likeUser = new ArrayList(); - - private String imageFilePath; - private String audioPath; - - public Tweet() { - } - - public Tweet(Parcel dest) { - id = dest.readInt(); - portrait = dest.readString(); - author = dest.readString(); - authorid = dest.readInt(); - body = dest.readString(); - appclient = dest.readInt(); - commentCount = dest.readString(); - pubDate = dest.readString(); - imgSmall = dest.readString(); - imgBig = dest.readString(); - attach = dest.readString(); - imageFilePath = dest.readString(); - audioPath = dest.readString(); - isLike = dest.readInt(); - } - - public String getAttach() { - return attach; - } - - public void setAttach(String attach) { - this.attach = attach; - } - - public String getPortrait() { - return portrait; - } - - public void setPortrait(String portrait) { - this.portrait = portrait; - } - - public String getAuthor() { - return author; - } - - public void setAuthor(String author) { - this.author = author; - } - - public int getAuthorid() { - return authorid; - } - - public void setAuthorid(int authorid) { - this.authorid = authorid; - } - - public String getBody() { - return body; - } - - public void setBody(String body) { - this.body = body; - } - - public int getAppclient() { - return appclient; - } - - public void setAppclient(int appclient) { - this.appclient = appclient; - } - - public String getCommentCount() { - return commentCount; - } - - public void setCommentCount(String commentCount) { - this.commentCount = commentCount; - } - - public String getPubDate() { - return pubDate; - } - - public void setPubDate(String pubDate) { - this.pubDate = pubDate; - } - - public String getImgSmall() { - return imgSmall; - } - - public void setImgSmall(String imgSmall) { - this.imgSmall = imgSmall; - } - - public String getImgBig() { - return imgBig; - } - - public void setImgBig(String imgBig) { - this.imgBig = imgBig; - } - - public String getImageFilePath() { - return imageFilePath; - } - - public void setImageFilePath(String imageFilePath) { - this.imageFilePath = imageFilePath; - } - - public String getAudioPath() { - return audioPath; - } - - public void setAudioPath(String audioPath) { - this.audioPath = audioPath; - } - - public List getLikeUser() { - return likeUser; - } - - public void setLikeUser(List likeUser) { - this.likeUser = likeUser; - } - - public int getLikeCount() { - return likeCount; - } - - public void setLikeCount(int likeCount) { - this.likeCount = likeCount; - } - - public int getIsLike() { - return isLike; - } - - public void setIsLike(int isLike) { - this.isLike = isLike; - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeInt(id); - dest.writeString(portrait); - dest.writeString(author); - dest.writeInt(authorid); - dest.writeString(body); - dest.writeInt(appclient); - dest.writeString(commentCount); - dest.writeString(pubDate); - dest.writeString(imgSmall); - dest.writeString(imgBig); - dest.writeString(attach); - dest.writeString(imageFilePath); - dest.writeString(audioPath); - dest.writeInt(isLike); - } - - public static final Parcelable.Creator CREATOR = new Creator() { - - @Override - public Tweet[] newArray(int size) { - return new Tweet[size]; - } - - @Override - public Tweet createFromParcel(Parcel source) { - return new Tweet(source); - } - }; - - public void setLikeUsers(Context contet, TextView likeUser, boolean limit) { - // 构造多个超链接的html, 通过选中的位置来获取用户名 - if (getLikeCount() > 0 && getLikeUser() != null - && !getLikeUser().isEmpty()) { - likeUser.setVisibility(View.VISIBLE); - likeUser.setMovementMethod(LinkMovementMethod.getInstance()); - likeUser.setFocusable(false); - likeUser.setLongClickable(false); - likeUser.setText(addClickablePart(contet, limit), BufferType.SPANNABLE); - } else { - likeUser.setVisibility(View.GONE); - likeUser.setText(""); - } - } - - /** - * @return - */ - private SpannableStringBuilder addClickablePart(final Context context, - boolean limit) { - - StringBuilder sbBuilder = new StringBuilder(); - int showCunt = getLikeUser().size(); - if (limit && showCunt > 4) { - showCunt = 4; - } - - // 如果已经点赞,始终让该用户在首位 - if (getIsLike() == 1) { - - for (int i = 0; i < getLikeUser().size(); i++) { - if (getLikeUser().get(i).getId() == AppContext.getInstance() - .getLoginUid()) { - getLikeUser().remove(i); - } - } - getLikeUser().add(0, AppContext.getInstance().getLoginUser()); - } - - for (int i = 0; i < showCunt; i++) { - sbBuilder.append(getLikeUser().get(i).getName()).append("、"); - } - - String likeUsersStr = sbBuilder.substring(0, sbBuilder.lastIndexOf("、")); - - // 第一个赞图标 - // ImageSpan span = new ImageSpan(AppContext.getInstance(), - // R.drawable.ic_unlike_small); - SpannableString spanStr = new SpannableString(""); - // spanStr.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - - SpannableStringBuilder ssb = new SpannableStringBuilder(spanStr); - ssb.append(likeUsersStr); - - String[] likeUsers = likeUsersStr.split("、"); - - if (likeUsers.length > 0) { - // 最后一个 - for (int i = 0; i < likeUsers.length; i++) { - final String name = likeUsers[i]; - final int start = likeUsersStr.indexOf(name) + spanStr.length(); - final int index = i; - ssb.setSpan(new ClickableSpan() { - @Override - public void onClick(View widget) { - User user = getLikeUser().get(index); - UIHelper.showUserCenter(context, user.getId(), - user.getName()); - } - - @Override - public void updateDrawState(TextPaint ds) { - super.updateDrawState(ds); - // ds.setColor(R.color.link_color); // 设置文本颜色 - // 去掉下划线 - ds.setUnderlineText(false); - } - }, start, start + name.length(), 0); - } - } - if (likeUsers.length < getLikeCount()) { - ssb.append("等"); - int start = ssb.length(); - String more = getLikeCount() + "人"; - ssb.append(more); - ssb.setSpan(new ClickableSpan() { - - @Override - public void onClick(View widget) { - Bundle bundle = new Bundle(); - bundle.putInt(BaseListFragment.BUNDLE_KEY_CATALOG, getId()); - UIHelper.showSimpleBack(context, - SimpleBackPage.TWEET_LIKE_USER_LIST, bundle); - } - - @Override - public void updateDrawState(TextPaint ds) { - super.updateDrawState(ds); - // ds.setColor(R.color.link_color); // 设置文本颜色 - // 去掉下划线 - ds.setUnderlineText(false); - } - - }, start, start + more.length(), 0); - return ssb.append("觉得很赞"); - } else { - return ssb.append("觉得很赞"); - } - } -} diff --git a/app/src/main/java/net/oschina/app/bean/TweetDetail.java b/app/src/main/java/net/oschina/app/bean/TweetDetail.java deleted file mode 100644 index fbb850a4b..000000000 --- a/app/src/main/java/net/oschina/app/bean/TweetDetail.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * @author HuangWenwei - * - * @date 2014年10月16日 - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class TweetDetail extends Entity { - - @XStreamAlias("tweet") - private Tweet tweet; - - public Tweet getTweet() { - return tweet; - } - public void setTweet(Tweet tweet) { - this.tweet = tweet; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/TweetLike.java b/app/src/main/java/net/oschina/app/bean/TweetLike.java deleted file mode 100644 index 2faf97d67..000000000 --- a/app/src/main/java/net/oschina/app/bean/TweetLike.java +++ /dev/null @@ -1,61 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 点赞消息实体类 - * LikeTweet.java - * - * @author 火蚁(http://my.oschina.net/u/253900) - * - * @data 2015-4-10 上午10:09:15 - */ -@SuppressWarnings("serial") -@XStreamAlias("mytweet") -public class TweetLike extends Entity { - - @XStreamAlias("user") - private User user; - - @XStreamAlias("tweet") - private Tweet tweet; - - @XStreamAlias("datatime") - private String datatime; - - @XStreamAlias("appclient") - private int appClient; - - public User getUser() { - return user; - } - - public void setUser(User user) { - this.user = user; - } - - public Tweet getTweet() { - return tweet; - } - - public void setTweet(Tweet tweet) { - this.tweet = tweet; - } - - public String getDatatime() { - return datatime; - } - - public void setDatatime(String datatime) { - this.datatime = datatime; - } - - public int getAppClient() { - return appClient; - } - - public void setAppClient(int appClient) { - this.appClient = appClient; - } -} - diff --git a/app/src/main/java/net/oschina/app/bean/TweetLikeList.java b/app/src/main/java/net/oschina/app/bean/TweetLikeList.java deleted file mode 100644 index aa2212070..000000000 --- a/app/src/main/java/net/oschina/app/bean/TweetLikeList.java +++ /dev/null @@ -1,32 +0,0 @@ -package net.oschina.app.bean; - -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * LikeTweetList.java - * - * @author 火蚁(http://my.oschina.net/u/253900) - * - * @data 2015-4-10 上午10:11:48 - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class TweetLikeList implements ListEntity { - - @XStreamAlias("likeList") - private List list; - - @Override - public List getList() { - // TODO Auto-generated method stub - return list; - } - - public void setList(List list) { - this.list = list; - } - -} - diff --git a/app/src/main/java/net/oschina/app/bean/TweetLikeUserList.java b/app/src/main/java/net/oschina/app/bean/TweetLikeUserList.java deleted file mode 100644 index df3ee1c35..000000000 --- a/app/src/main/java/net/oschina/app/bean/TweetLikeUserList.java +++ /dev/null @@ -1,30 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * TweetLikeUserList.java - * - * @author 火蚁(http://my.oschina.net/u/253900) - * - * @data 2015-3-26 下午4:23:32 - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class TweetLikeUserList implements ListEntity { - - @XStreamAlias("likeList") - private List list = new ArrayList(); - - public List getList() { - return list; - } - - public void getList(List list) { - this.list = list; - } -} - diff --git a/app/src/main/java/net/oschina/app/bean/TweetsList.java b/app/src/main/java/net/oschina/app/bean/TweetsList.java deleted file mode 100644 index 5e633868c..000000000 --- a/app/src/main/java/net/oschina/app/bean/TweetsList.java +++ /dev/null @@ -1,57 +0,0 @@ -package net.oschina.app.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * @author HuangWenwei - * - * @date 2014年10月10日 - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class TweetsList extends Entity implements ListEntity { - - public final static int CATALOG_LATEST = 0; - public final static int CATALOG_HOT = -1; - public final static int CATALOG_ME = 1; - - @XStreamAlias("tweetcount") - private int tweetCount; - @XStreamAlias("pagesize") - private int pagesize; - @XStreamAlias("tweets") - private List tweetslist = new ArrayList(); - - public int getTweetCount() { - return tweetCount; - } - - public void setTweetCount(int tweetCount) { - this.tweetCount = tweetCount; - } - - public int getPagesize() { - return pagesize; - } - - public void setPagesize(int pagesize) { - this.pagesize = pagesize; - } - - public List getTweetslist() { - return tweetslist; - } - - public void setTweetslist(List tweetslist) { - this.tweetslist = tweetslist; - } - - @Override - public List getList() { - return tweetslist; - } - -} diff --git a/app/src/main/java/net/oschina/app/bean/Update.java b/app/src/main/java/net/oschina/app/bean/Update.java deleted file mode 100644 index bbc0d8d9f..000000000 --- a/app/src/main/java/net/oschina/app/bean/Update.java +++ /dev/null @@ -1,146 +0,0 @@ -package net.oschina.app.bean; - -import java.io.Serializable; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 更新实体类 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年11月10日 下午12:56:27 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class Update implements Serializable { - - @XStreamAlias("update") - private UpdateBean update; - - public UpdateBean getUpdate() { - return update; - } - - public void setUpdate(UpdateBean update) { - this.update = update; - } - - @XStreamAlias("update") - public class UpdateBean implements Serializable { - @XStreamAlias("wp7") - private String wp7; - @XStreamAlias("ios") - private String ios; - @XStreamAlias("android") - private AndroidBean android; - - public String getWp7() { - return wp7; - } - - public void setWp7(String wp7) { - this.wp7 = wp7; - } - - public String getIos() { - return ios; - } - - public void setIos(String ios) { - this.ios = ios; - } - - public AndroidBean getAndroid() { - return android; - } - - public void setAndroid(AndroidBean android) { - this.android = android; - } - - } - - @XStreamAlias("android") - public class AndroidBean implements Serializable { - @XStreamAlias("versionCode") - private int versionCode; - @XStreamAlias("versionName") - private String versionName; - @XStreamAlias("downloadUrl") - private String downloadUrl; - @XStreamAlias("updateLog") - private String updateLog; - @XStreamAlias("coverUpdate") - private String coverUpdate; - @XStreamAlias("coverStartDate") - private String coverStartDate; - @XStreamAlias("coverEndDate") - private String coverEndDate; - @XStreamAlias("coverURL") - private String coverURL; - - public int getVersionCode() { - return versionCode; - } - - public void setVersionCode(int versionCode) { - this.versionCode = versionCode; - } - - public String getVersionName() { - return versionName; - } - - public void setVersionName(String versionName) { - this.versionName = versionName; - } - - public String getDownloadUrl() { - return downloadUrl; - } - - public void setDownloadUrl(String downloadUrl) { - this.downloadUrl = downloadUrl; - } - - public String getUpdateLog() { - return updateLog; - } - - public void setUpdateLog(String updateLog) { - this.updateLog = updateLog; - } - - public String getCoverUpdate() { - return coverUpdate; - } - - public void setCoverUpdate(String coverUpdate) { - this.coverUpdate = coverUpdate; - } - - public String getCoverStartDate() { - return coverStartDate; - } - - public void setCoverStartDate(String coverStartDate) { - this.coverStartDate = coverStartDate; - } - - public String getCoverEndDate() { - return coverEndDate; - } - - public void setCoverEndDate(String coverEndDate) { - this.coverEndDate = coverEndDate; - } - - public String getCoverURL() { - return coverURL; - } - - public void setCoverURL(String coverURL) { - this.coverURL = coverURL; - } - } -} diff --git a/app/src/main/java/net/oschina/app/bean/User.java b/app/src/main/java/net/oschina/app/bean/User.java deleted file mode 100644 index 4df29db29..000000000 --- a/app/src/main/java/net/oschina/app/bean/User.java +++ /dev/null @@ -1,230 +0,0 @@ -package net.oschina.app.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 登录用户实体类 - * - * @author liux (http://my.oschina.net/liux) - * @version 1.0 - * @created 2012-3-21 - */ -@SuppressWarnings("serial") -@XStreamAlias("user") -public class User extends Entity { - - public final static int RELATION_ACTION_DELETE = 0x00;// 取消关注 - public final static int RELATION_ACTION_ADD = 0x01;// 加关注 - - public final static int RELATION_TYPE_BOTH = 0x01;// 双方互为粉丝 - public final static int RELATION_TYPE_FANS_HIM = 0x02;// 你单方面关注他 - public final static int RELATION_TYPE_NULL = 0x03;// 互不关注 - public final static int RELATION_TYPE_FANS_ME = 0x04;// 只有他关注我 - - @XStreamAlias("uid") - private int id; - - @XStreamAlias("location") - private String location; - - @XStreamAlias("name") - private String name; - - @XStreamAlias("followers") - private int followers; - - @XStreamAlias("fans") - private int fans; - - @XStreamAlias("score") - private int score; - - @XStreamAlias("portrait") - private String portrait; - - @XStreamAlias("jointime") - private String jointime; - - @XStreamAlias("gender") - private String gender; - - @XStreamAlias("devplatform") - private String devplatform; - - @XStreamAlias("expertise") - private String expertise; - - @XStreamAlias("relation") - private int relation; - - @XStreamAlias("latestonline") - private String latestonline; - - @XStreamAlias("from") - private String from; - - @XStreamAlias("favoritecount") - private int favoritecount; - - private String account; - - private String pwd; - - private boolean isRememberMe; - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getLocation() { - return location; - } - - public void setLocation(String location) { - this.location = location; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getFollowers() { - return followers; - } - - public void setFollowers(int followers) { - this.followers = followers; - } - - public int getFans() { - return fans; - } - - public void setFans(int fans) { - this.fans = fans; - } - - public int getScore() { - return score; - } - - public void setScore(int score) { - this.score = score; - } - - public String getPortrait() { - return portrait; - } - - public void setPortrait(String portrait) { - this.portrait = portrait; - } - - public String getJointime() { - return jointime; - } - - public void setJointime(String jointime) { - this.jointime = jointime; - } - - public String getGender() { - return gender; - } - - public void setGender(String gender) { - this.gender = gender; - } - - public String getDevplatform() { - return devplatform; - } - - public void setDevplatform(String devplatform) { - this.devplatform = devplatform; - } - - public String getExpertise() { - return expertise; - } - - public void setExpertise(String expertise) { - this.expertise = expertise; - } - - public int getRelation() { - return relation; - } - - public void setRelation(int relation) { - this.relation = relation; - } - - public String getLatestonline() { - return latestonline; - } - - public void setLatestonline(String latestonline) { - this.latestonline = latestonline; - } - - public String getFrom() { - return from; - } - - public void setFrom(String from) { - this.from = from; - } - - public int getFavoritecount() { - return favoritecount; - } - - public void setFavoritecount(int favoritecount) { - this.favoritecount = favoritecount; - } - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } - - public String getPwd() { - return pwd; - } - - public void setPwd(String pwd) { - this.pwd = pwd; - } - - public boolean isRememberMe() { - return isRememberMe; - } - - public void setRememberMe(boolean isRememberMe) { - this.isRememberMe = isRememberMe; - } - - @Override - public String toString() { - return "User [uid=" + id + ", location=" + location + ", name=" + name - + ", followers=" + followers + ", fans=" + fans + ", score=" - + score + ", portrait=" + portrait + ", jointime=" + jointime - + ", gender=" + gender + ", devplatform=" + devplatform - + ", expertise=" + expertise + ", relation=" + relation - + ", latestonline=" + latestonline + ", from=" + from - + ", favoritecount=" + favoritecount + ", account=" + account - + ", pwd=" + pwd + ", isRememberMe=" + isRememberMe + "]"; - } -} diff --git a/app/src/main/java/net/oschina/app/bean/UserInformation.java b/app/src/main/java/net/oschina/app/bean/UserInformation.java deleted file mode 100644 index a23f53ef9..000000000 --- a/app/src/main/java/net/oschina/app/bean/UserInformation.java +++ /dev/null @@ -1,49 +0,0 @@ -package net.oschina.app.bean; - -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 个人信息专用实体类 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年10月29日 上午10:53:54 - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class UserInformation extends Base { - - @XStreamAlias("user") - private User user; - - @XStreamAlias("pagesize") - private int pageSize; - - @XStreamAlias("activies") - private List activeList; - - public User getUser() { - return user; - } - - public void setUser(User user) { - this.user = user; - } - - public int getPageSize() { - return pageSize; - } - - public void setPageSize(int pageSize) { - this.pageSize = pageSize; - } - - public List getActiveList() { - return activeList; - } - - public void setActiveList(List activeList) { - this.activeList = activeList; - } -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/broadcast/AlarmReceiver.java b/app/src/main/java/net/oschina/app/broadcast/AlarmReceiver.java deleted file mode 100644 index edc1a16e7..000000000 --- a/app/src/main/java/net/oschina/app/broadcast/AlarmReceiver.java +++ /dev/null @@ -1,16 +0,0 @@ -package net.oschina.app.broadcast; - -import net.oschina.app.service.NoticeUtils; -import net.oschina.app.util.TLog; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; - -public class AlarmReceiver extends BroadcastReceiver { - - @Override - public void onReceive(Context context, Intent intent) { - TLog.log("onReceive ->net.oschina.app收到定时获取消息"); - NoticeUtils.requestNotice(context); - } -} diff --git a/app/src/main/java/net/oschina/app/cache/CacheManager.java b/app/src/main/java/net/oschina/app/cache/CacheManager.java deleted file mode 100644 index 1b9ebec7c..000000000 --- a/app/src/main/java/net/oschina/app/cache/CacheManager.java +++ /dev/null @@ -1,126 +0,0 @@ -package net.oschina.app.cache; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InvalidClassException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; - -import net.oschina.app.util.TDevice; -import android.content.Context; - -public class CacheManager { - - // wifi缓存时间为5分钟 - private static long wifi_cache_time = 5 * 60 * 1000; - // 其他网络环境为1小时 - private static long other_cache_time = 60 * 60 * 1000; - - /** - * 保存对象 - * - * @param ser - * @param file - * @throws IOException - */ - public static boolean saveObject(Context context, Serializable ser, - String file) { - FileOutputStream fos = null; - ObjectOutputStream oos = null; - try { - fos = context.openFileOutput(file, Context.MODE_PRIVATE); - oos = new ObjectOutputStream(fos); - oos.writeObject(ser); - oos.flush(); - return true; - } catch (Exception e) { - e.printStackTrace(); - return false; - } finally { - try { - oos.close(); - } catch (Exception e) { - } - try { - fos.close(); - } catch (Exception e) { - } - } - } - - /** - * 读取对象 - * - * @param file - * @return - * @throws IOException - */ - public static Serializable readObject(Context context, String file) { - if (!isExistDataCache(context, file)) - return null; - FileInputStream fis = null; - ObjectInputStream ois = null; - try { - fis = context.openFileInput(file); - ois = new ObjectInputStream(fis); - return (Serializable) ois.readObject(); - } catch (FileNotFoundException e) { - } catch (Exception e) { - e.printStackTrace(); - // 反序列化失败 - 删除缓存文件 - if (e instanceof InvalidClassException) { - File data = context.getFileStreamPath(file); - data.delete(); - } - } finally { - try { - ois.close(); - } catch (Exception e) { - } - try { - fis.close(); - } catch (Exception e) { - } - } - return null; - } - - /** - * 判断缓存是否存在 - * - * @param cachefile - * @return - */ - public static boolean isExistDataCache(Context context, String cachefile) { - if (context == null) - return false; - boolean exist = false; - File data = context.getFileStreamPath(cachefile); - if (data.exists()) - exist = true; - return exist; - } - - /** - * 判断缓存是否已经失效 - */ - public static boolean isCacheDataFailure(Context context, String cachefile) { - File data = context.getFileStreamPath(cachefile); - if (!data.exists()) { - - return false; - } - long existTime = System.currentTimeMillis() - data.lastModified(); - boolean failure = false; - if (TDevice.getNetworkType() == TDevice.NETTYPE_WIFI) { - failure = existTime > wifi_cache_time ? true : false; - } else { - failure = existTime > other_cache_time ? true : false; - } - return failure; - } -} diff --git a/app/src/main/java/net/oschina/app/cache/DataCleanManager.java b/app/src/main/java/net/oschina/app/cache/DataCleanManager.java deleted file mode 100644 index 4c200a976..000000000 --- a/app/src/main/java/net/oschina/app/cache/DataCleanManager.java +++ /dev/null @@ -1,120 +0,0 @@ -package net.oschina.app.cache; - -import java.io.File; - -import android.content.Context; -import android.os.Environment; - -/** - * 数据删除工具类 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年10月27日 上午10:18:22 - * - */ -public class DataCleanManager { - - /** - * 清除本应用内部缓存 - * (/data/data/com.xxx.xxx/cache) - * @param context - */ - public static void cleanInternalCache(Context context) { - deleteFilesByDirectory(context.getCacheDir()); - deleteFilesByDirectory(context.getFilesDir()); - } - - /** - * 清楚本应用所有数据库 - * (/data/data/com.xxx.xxx/databases) - * @param context - */ - public static void cleanDatabases(Context context) { - deleteFilesByDirectory(new File("/data/data/" - + context.getPackageName() + "/databases")); - } - - /** - * 清除本应用SharedPreference - * (/data/data/com.xxx.xxx/shared_prefs) - * @param context - */ - public static void cleanSharedPreference(Context context) { - deleteFilesByDirectory(new File("/data/data/" - + context.getPackageName() + "/shared_prefs")); - } - - /** - * 按名字清除本应用数据库 - * @param context - * @param dbName - */ - public static void cleanDatabaseByName(Context context, String dbName) { - context.deleteDatabase(dbName); - } - - /** - * 清除/data/data/com.xxx.xxx/files下的内容 - * @param context - */ - public static void cleanFiles(Context context) { - deleteFilesByDirectory(context.getFilesDir()); - } - - /** - * 清除外部cache下的内容(/mnt/sdcard/android/data/com.xxx.xxx/cache) - * @param context - */ - public static void cleanExternalCache(Context context) { - if (Environment.getExternalStorageState().equals( - Environment.MEDIA_MOUNTED)) { - deleteFilesByDirectory(context.getExternalCacheDir()); - } - } - - /** - * 清除自定义路径下的文件,使用需小心,请不要误删。而且只支持目录下的文件删除 - * @param filePath - */ - public static void cleanCustomCache(String filePath) { - deleteFilesByDirectory(new File(filePath)); - } - - /** - * 清除自定义路径下的文件,使用需小心,请不要误删。而且只支持目录下的文件删除 - * @param filePath - */ - public static void cleanCustomCache(File file) { - deleteFilesByDirectory(file); - } - - /** - * 清除本应用所有的数据 - * @param context - * @param filepath - */ - public static void cleanApplicationData(Context context, String... filepath) { - cleanInternalCache(context); - cleanExternalCache(context); - cleanDatabases(context); - cleanSharedPreference(context); - cleanFiles(context); - for (String filePath : filepath) { - cleanCustomCache(filePath); - } - } - - /** - * 删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理 - * @param directory - */ - private static void deleteFilesByDirectory(File directory) { - if (directory != null && directory.exists() && directory.isDirectory()) { - for (File child : directory.listFiles()) { - if (child.isDirectory()) { - deleteFilesByDirectory(child); - } - child.delete(); - } - } - } -} diff --git a/app/src/main/java/net/oschina/app/cache/DiskLruCache.java b/app/src/main/java/net/oschina/app/cache/DiskLruCache.java deleted file mode 100644 index e36f68359..000000000 --- a/app/src/main/java/net/oschina/app/cache/DiskLruCache.java +++ /dev/null @@ -1,953 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * 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. - */ - -package net.oschina.app.cache; - -import java.io.BufferedInputStream; -import java.io.BufferedWriter; -import java.io.Closeable; -import java.io.EOFException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.FilterOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.Reader; -import java.io.StringWriter; -import java.io.Writer; -import java.lang.reflect.Array; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -/** - ****************************************************************************** - * Taken from the JB source code, can be found in: - * libcore/luni/src/main/java/libcore/io/DiskLruCache.java - * or direct link: - * https://android.googlesource.com/platform/libcore/+/android-4.1.1_r1/luni/src/main/java/libcore/io/DiskLruCache.java - ****************************************************************************** - * - * A cache that uses a bounded amount of space on a filesystem. Each cache - * entry has a string key and a fixed number of values. Values are byte - * sequences, accessible as streams or files. Each value must be between {@code - * 0} and {@code Integer.MAX_VALUE} bytes in length. - * - *

The cache stores its data in a directory on the filesystem. This - * directory must be exclusive to the cache; the cache may delete or overwrite - * files from its directory. It is an error for multiple processes to use the - * same cache directory at the same time. - * - *

This cache limits the number of bytes that it will store on the - * filesystem. When the number of stored bytes exceeds the limit, the cache will - * remove entries in the background until the limit is satisfied. The limit is - * not strict: the cache may temporarily exceed it while waiting for files to be - * deleted. The limit does not include filesystem overhead or the cache - * journal so space-sensitive applications should set a conservative limit. - * - *

Clients call {@link #edit} to create or update the values of an entry. An - * entry may have only one editor at one time; if a value is not available to be - * edited then {@link #edit} will return null. - *

    - *
  • When an entry is being created it is necessary to - * supply a full set of values; the empty value should be used as a - * placeholder if necessary. - *
  • When an entry is being edited, it is not necessary - * to supply data for every value; values default to their previous - * value. - *
- * Every {@link #edit} call must be matched by a call to {@link Editor#commit} - * or {@link Editor#abort}. Committing is atomic: a read observes the full set - * of values as they were before or after the commit, but never a mix of values. - * - *

Clients call {@link #get} to read a snapshot of an entry. The read will - * observe the value at the time that {@link #get} was called. Updates and - * removals after the call do not impact ongoing reads. - * - *

This class is tolerant of some I/O errors. If files are missing from the - * filesystem, the corresponding entries will be dropped from the cache. If - * an error occurs while writing a cache value, the edit will fail silently. - * Callers should handle other problems by catching {@code IOException} and - * responding appropriately. - */ -public final class DiskLruCache implements Closeable { - static final String JOURNAL_FILE = "journal"; - static final String JOURNAL_FILE_TMP = "journal.tmp"; - static final String MAGIC = "libcore.io.DiskLruCache"; - static final String VERSION_1 = "1"; - static final long ANY_SEQUENCE_NUMBER = -1; - private static final String CLEAN = "CLEAN"; - private static final String DIRTY = "DIRTY"; - private static final String REMOVE = "REMOVE"; - private static final String READ = "READ"; - - private static final Charset UTF_8 = Charset.forName("UTF-8"); - private static final int IO_BUFFER_SIZE = 8 * 1024; - - /* - * This cache uses a journal file named "journal". A typical journal file - * looks like this: - * libcore.io.DiskLruCache - * 1 - * 100 - * 2 - * - * CLEAN 3400330d1dfc7f3f7f4b8d4d803dfcf6 832 21054 - * DIRTY 335c4c6028171cfddfbaae1a9c313c52 - * CLEAN 335c4c6028171cfddfbaae1a9c313c52 3934 2342 - * REMOVE 335c4c6028171cfddfbaae1a9c313c52 - * DIRTY 1ab96a171faeeee38496d8b330771a7a - * CLEAN 1ab96a171faeeee38496d8b330771a7a 1600 234 - * READ 335c4c6028171cfddfbaae1a9c313c52 - * READ 3400330d1dfc7f3f7f4b8d4d803dfcf6 - * - * The first five lines of the journal form its header. They are the - * constant string "libcore.io.DiskLruCache", the disk cache's version, - * the application's version, the value count, and a blank line. - * - * Each of the subsequent lines in the file is a record of the state of a - * cache entry. Each line contains space-separated values: a state, a key, - * and optional state-specific values. - * o DIRTY lines track that an entry is actively being created or updated. - * Every successful DIRTY action should be followed by a CLEAN or REMOVE - * action. DIRTY lines without a matching CLEAN or REMOVE indicate that - * temporary files may need to be deleted. - * o CLEAN lines track a cache entry that has been successfully published - * and may be read. A publish line is followed by the lengths of each of - * its values. - * o READ lines track accesses for LRU. - * o REMOVE lines track entries that have been deleted. - * - * The journal file is appended to as cache operations occur. The journal may - * occasionally be compacted by dropping redundant lines. A temporary file named - * "journal.tmp" will be used during compaction; that file should be deleted if - * it exists when the cache is opened. - */ - - private final File directory; - private final File journalFile; - private final File journalFileTmp; - private final int appVersion; - private final long maxSize; - private final int valueCount; - private long size = 0; - private Writer journalWriter; - private final LinkedHashMap lruEntries - = new LinkedHashMap(0, 0.75f, true); - private int redundantOpCount; - - /** - * To differentiate between old and current snapshots, each entry is given - * a sequence number each time an edit is committed. A snapshot is stale if - * its sequence number is not equal to its entry's sequence number. - */ - private long nextSequenceNumber = 0; - - /* From java.util.Arrays */ - @SuppressWarnings("unchecked") - private static T[] copyOfRange(T[] original, int start, int end) { - final int originalLength = original.length; // For exception priority compatibility. - if (start > end) { - throw new IllegalArgumentException(); - } - if (start < 0 || start > originalLength) { - throw new ArrayIndexOutOfBoundsException(); - } - final int resultLength = end - start; - final int copyLength = Math.min(resultLength, originalLength - start); - final T[] result = (T[]) Array - .newInstance(original.getClass().getComponentType(), resultLength); - System.arraycopy(original, start, result, 0, copyLength); - return result; - } - - /** - * Returns the remainder of 'reader' as a string, closing it when done. - */ - public static String readFully(Reader reader) throws IOException { - try { - StringWriter writer = new StringWriter(); - char[] buffer = new char[1024]; - int count; - while ((count = reader.read(buffer)) != -1) { - writer.write(buffer, 0, count); - } - return writer.toString(); - } finally { - reader.close(); - } - } - - /** - * Returns the ASCII characters up to but not including the next "\r\n", or - * "\n". - * - * @throws java.io.EOFException if the stream is exhausted before the next newline - * character. - */ - public static String readAsciiLine(InputStream in) throws IOException { - // TODO: support UTF-8 here instead - - StringBuilder result = new StringBuilder(80); - while (true) { - int c = in.read(); - if (c == -1) { - throw new EOFException(); - } else if (c == '\n') { - break; - } - - result.append((char) c); - } - int length = result.length(); - if (length > 0 && result.charAt(length - 1) == '\r') { - result.setLength(length - 1); - } - return result.toString(); - } - - /** - * Closes 'closeable', ignoring any checked exceptions. Does nothing if 'closeable' is null. - */ - public static void closeQuietly(Closeable closeable) { - if (closeable != null) { - try { - closeable.close(); - } catch (RuntimeException rethrown) { - throw rethrown; - } catch (Exception ignored) { - } - } - } - - /** - * Recursively delete everything in {@code dir}. - */ - // TODO: this should specify paths as Strings rather than as Files - public static void deleteContents(File dir) throws IOException { - File[] files = dir.listFiles(); - if (files == null) { - throw new IllegalArgumentException("not a directory: " + dir); - } - for (File file : files) { - if (file.isDirectory()) { - deleteContents(file); - } - if (!file.delete()) { - throw new IOException("failed to delete file: " + file); - } - } - } - - /** This cache uses a single background thread to evict entries. */ - private final ExecutorService executorService = new ThreadPoolExecutor(0, 1, - 60L, TimeUnit.SECONDS, new LinkedBlockingQueue()); - private final Callable cleanupCallable = new Callable() { - @Override public Void call() throws Exception { - synchronized (DiskLruCache.this) { - if (journalWriter == null) { - return null; // closed - } - trimToSize(); - if (journalRebuildRequired()) { - rebuildJournal(); - redundantOpCount = 0; - } - } - return null; - } - }; - - private DiskLruCache(File directory, int appVersion, int valueCount, long maxSize) { - this.directory = directory; - this.appVersion = appVersion; - this.journalFile = new File(directory, JOURNAL_FILE); - this.journalFileTmp = new File(directory, JOURNAL_FILE_TMP); - this.valueCount = valueCount; - this.maxSize = maxSize; - } - - /** - * Opens the cache in {@code directory}, creating a cache if none exists - * there. - * - * @param directory a writable directory - * @param appVersion - * @param valueCount the number of values per cache entry. Must be positive. - * @param maxSize the maximum number of bytes this cache should use to store - * @throws java.io.IOException if reading or writing the cache directory fails - */ - public static DiskLruCache open(File directory, int appVersion, int valueCount, long maxSize) - throws IOException { - if (maxSize <= 0) { - throw new IllegalArgumentException("maxSize <= 0"); - } - if (valueCount <= 0) { - throw new IllegalArgumentException("valueCount <= 0"); - } - - // prefer to pick up where we left off - DiskLruCache cache = new DiskLruCache(directory, appVersion, valueCount, maxSize); - if (cache.journalFile.exists()) { - try { - cache.readJournal(); - cache.processJournal(); - cache.journalWriter = new BufferedWriter(new FileWriter(cache.journalFile, true), - IO_BUFFER_SIZE); - return cache; - } catch (IOException journalIsCorrupt) { -// System.logW("DiskLruCache " + directory + " is corrupt: " -// + journalIsCorrupt.getMessage() + ", removing"); - cache.delete(); - } - } - - // create a new empty cache - directory.mkdirs(); - cache = new DiskLruCache(directory, appVersion, valueCount, maxSize); - cache.rebuildJournal(); - return cache; - } - - private void readJournal() throws IOException { - InputStream in = new BufferedInputStream(new FileInputStream(journalFile), IO_BUFFER_SIZE); - try { - String magic = readAsciiLine(in); - String version = readAsciiLine(in); - String appVersionString = readAsciiLine(in); - String valueCountString = readAsciiLine(in); - String blank = readAsciiLine(in); - if (!MAGIC.equals(magic) - || !VERSION_1.equals(version) - || !Integer.toString(appVersion).equals(appVersionString) - || !Integer.toString(valueCount).equals(valueCountString) - || !"".equals(blank)) { - throw new IOException("unexpected journal header: [" - + magic + ", " + version + ", " + valueCountString + ", " + blank + "]"); - } - - while (true) { - try { - readJournalLine(readAsciiLine(in)); - } catch (EOFException endOfJournal) { - break; - } - } - } finally { - closeQuietly(in); - } - } - - private void readJournalLine(String line) throws IOException { - String[] parts = line.split(" "); - if (parts.length < 2) { - throw new IOException("unexpected journal line: " + line); - } - - String key = parts[1]; - if (parts[0].equals(REMOVE) && parts.length == 2) { - lruEntries.remove(key); - return; - } - - Entry entry = lruEntries.get(key); - if (entry == null) { - entry = new Entry(key); - lruEntries.put(key, entry); - } - - if (parts[0].equals(CLEAN) && parts.length == 2 + valueCount) { - entry.readable = true; - entry.currentEditor = null; - entry.setLengths(copyOfRange(parts, 2, parts.length)); - } else if (parts[0].equals(DIRTY) && parts.length == 2) { - entry.currentEditor = new Editor(entry); - } else if (parts[0].equals(READ) && parts.length == 2) { - // this work was already done by calling lruEntries.get() - } else { - throw new IOException("unexpected journal line: " + line); - } - } - - /** - * Computes the initial size and collects garbage as a part of opening the - * cache. Dirty entries are assumed to be inconsistent and will be deleted. - */ - private void processJournal() throws IOException { - deleteIfExists(journalFileTmp); - for (Iterator i = lruEntries.values().iterator(); i.hasNext(); ) { - Entry entry = i.next(); - if (entry.currentEditor == null) { - for (int t = 0; t < valueCount; t++) { - size += entry.lengths[t]; - } - } else { - entry.currentEditor = null; - for (int t = 0; t < valueCount; t++) { - deleteIfExists(entry.getCleanFile(t)); - deleteIfExists(entry.getDirtyFile(t)); - } - i.remove(); - } - } - } - - /** - * Creates a new journal that omits redundant information. This replaces the - * current journal if it exists. - */ - private synchronized void rebuildJournal() throws IOException { - if (journalWriter != null) { - journalWriter.close(); - } - - Writer writer = new BufferedWriter(new FileWriter(journalFileTmp), IO_BUFFER_SIZE); - writer.write(MAGIC); - writer.write("\n"); - writer.write(VERSION_1); - writer.write("\n"); - writer.write(Integer.toString(appVersion)); - writer.write("\n"); - writer.write(Integer.toString(valueCount)); - writer.write("\n"); - writer.write("\n"); - - for (Entry entry : lruEntries.values()) { - if (entry.currentEditor != null) { - writer.write(DIRTY + ' ' + entry.key + '\n'); - } else { - writer.write(CLEAN + ' ' + entry.key + entry.getLengths() + '\n'); - } - } - - writer.close(); - journalFileTmp.renameTo(journalFile); - journalWriter = new BufferedWriter(new FileWriter(journalFile, true), IO_BUFFER_SIZE); - } - - private static void deleteIfExists(File file) throws IOException { -// try { -// Libcore.os.remove(file.getPath()); -// } catch (ErrnoException errnoException) { -// if (errnoException.errno != OsConstants.ENOENT) { -// throw errnoException.rethrowAsIOException(); -// } -// } - if (file.exists() && !file.delete()) { - throw new IOException(); - } - } - - /** - * Returns a snapshot of the entry named {@code key}, or null if it doesn't - * exist is not currently readable. If a value is returned, it is moved to - * the head of the LRU queue. - */ - public synchronized Snapshot get(String key) throws IOException { - checkNotClosed(); - validateKey(key); - Entry entry = lruEntries.get(key); - if (entry == null) { - return null; - } - - if (!entry.readable) { - return null; - } - - /* - * Open all streams eagerly to guarantee that we see a single published - * snapshot. If we opened streams lazily then the streams could come - * from different edits. - */ - InputStream[] ins = new InputStream[valueCount]; - try { - for (int i = 0; i < valueCount; i++) { - ins[i] = new FileInputStream(entry.getCleanFile(i)); - } - } catch (FileNotFoundException e) { - // a file must have been deleted manually! - return null; - } - - redundantOpCount++; - journalWriter.append(READ + ' ' + key + '\n'); - if (journalRebuildRequired()) { - executorService.submit(cleanupCallable); - } - - return new Snapshot(key, entry.sequenceNumber, ins); - } - - /** - * Returns an editor for the entry named {@code key}, or null if another - * edit is in progress. - */ - public Editor edit(String key) throws IOException { - return edit(key, ANY_SEQUENCE_NUMBER); - } - - private synchronized Editor edit(String key, long expectedSequenceNumber) throws IOException { - checkNotClosed(); - validateKey(key); - Entry entry = lruEntries.get(key); - if (expectedSequenceNumber != ANY_SEQUENCE_NUMBER - && (entry == null || entry.sequenceNumber != expectedSequenceNumber)) { - return null; // snapshot is stale - } - if (entry == null) { - entry = new Entry(key); - lruEntries.put(key, entry); - } else if (entry.currentEditor != null) { - return null; // another edit is in progress - } - - Editor editor = new Editor(entry); - entry.currentEditor = editor; - - // flush the journal before creating files to prevent file leaks - journalWriter.write(DIRTY + ' ' + key + '\n'); - journalWriter.flush(); - return editor; - } - - /** - * Returns the directory where this cache stores its data. - */ - public File getDirectory() { - return directory; - } - - /** - * Returns the maximum number of bytes that this cache should use to store - * its data. - */ - public long maxSize() { - return maxSize; - } - - /** - * Returns the number of bytes currently being used to store the values in - * this cache. This may be greater than the max size if a background - * deletion is pending. - */ - public synchronized long size() { - return size; - } - - private synchronized void completeEdit(Editor editor, boolean success) throws IOException { - Entry entry = editor.entry; - if (entry.currentEditor != editor) { - throw new IllegalStateException(); - } - - // if this edit is creating the entry for the first time, every index must have a value - if (success && !entry.readable) { - for (int i = 0; i < valueCount; i++) { - if (!entry.getDirtyFile(i).exists()) { - editor.abort(); - throw new IllegalStateException("edit didn't create file " + i); - } - } - } - - for (int i = 0; i < valueCount; i++) { - File dirty = entry.getDirtyFile(i); - if (success) { - if (dirty.exists()) { - File clean = entry.getCleanFile(i); - dirty.renameTo(clean); - long oldLength = entry.lengths[i]; - long newLength = clean.length(); - entry.lengths[i] = newLength; - size = size - oldLength + newLength; - } - } else { - deleteIfExists(dirty); - } - } - - redundantOpCount++; - entry.currentEditor = null; - if (entry.readable | success) { - entry.readable = true; - journalWriter.write(CLEAN + ' ' + entry.key + entry.getLengths() + '\n'); - if (success) { - entry.sequenceNumber = nextSequenceNumber++; - } - } else { - lruEntries.remove(entry.key); - journalWriter.write(REMOVE + ' ' + entry.key + '\n'); - } - - if (size > maxSize || journalRebuildRequired()) { - executorService.submit(cleanupCallable); - } - } - - /** - * We only rebuild the journal when it will halve the size of the journal - * and eliminate at least 2000 ops. - */ - private boolean journalRebuildRequired() { - final int REDUNDANT_OP_COMPACT_THRESHOLD = 2000; - return redundantOpCount >= REDUNDANT_OP_COMPACT_THRESHOLD - && redundantOpCount >= lruEntries.size(); - } - - /** - * Drops the entry for {@code key} if it exists and can be removed. Entries - * actively being edited cannot be removed. - * - * @return true if an entry was removed. - */ - public synchronized boolean remove(String key) throws IOException { - checkNotClosed(); - validateKey(key); - Entry entry = lruEntries.get(key); - if (entry == null || entry.currentEditor != null) { - return false; - } - - for (int i = 0; i < valueCount; i++) { - File file = entry.getCleanFile(i); - if (!file.delete()) { - throw new IOException("failed to delete " + file); - } - size -= entry.lengths[i]; - entry.lengths[i] = 0; - } - - redundantOpCount++; - journalWriter.append(REMOVE + ' ' + key + '\n'); - lruEntries.remove(key); - - if (journalRebuildRequired()) { - executorService.submit(cleanupCallable); - } - - return true; - } - - /** - * Returns true if this cache has been closed. - */ - public boolean isClosed() { - return journalWriter == null; - } - - private void checkNotClosed() { - if (journalWriter == null) { - throw new IllegalStateException("cache is closed"); - } - } - - /** - * Force buffered operations to the filesystem. - */ - public synchronized void flush() throws IOException { - checkNotClosed(); - trimToSize(); - journalWriter.flush(); - } - - /** - * Closes this cache. Stored values will remain on the filesystem. - */ - public synchronized void close() throws IOException { - if (journalWriter == null) { - return; // already closed - } - for (Entry entry : new ArrayList(lruEntries.values())) { - if (entry.currentEditor != null) { - entry.currentEditor.abort(); - } - } - trimToSize(); - journalWriter.close(); - journalWriter = null; - } - - private void trimToSize() throws IOException { - while (size > maxSize) { -// Map.Entry toEvict = lruEntries.eldest(); - final Map.Entry toEvict = lruEntries.entrySet().iterator().next(); - remove(toEvict.getKey()); - } - } - - /** - * Closes the cache and deletes all of its stored values. This will delete - * all files in the cache directory including files that weren't created by - * the cache. - */ - public void delete() throws IOException { - close(); - deleteContents(directory); - } - - private void validateKey(String key) { - if (key.contains(" ") || key.contains("\n") || key.contains("\r")) { - throw new IllegalArgumentException( - "keys must not contain spaces or newlines: \"" + key + "\""); - } - } - - private static String inputStreamToString(InputStream in) throws IOException { - return readFully(new InputStreamReader(in, UTF_8)); - } - - /** - * A snapshot of the values for an entry. - */ - public final class Snapshot implements Closeable { - private final String key; - private final long sequenceNumber; - private final InputStream[] ins; - - private Snapshot(String key, long sequenceNumber, InputStream[] ins) { - this.key = key; - this.sequenceNumber = sequenceNumber; - this.ins = ins; - } - - /** - * Returns an editor for this snapshot's entry, or null if either the - * entry has changed since this snapshot was created or if another edit - * is in progress. - */ - public Editor edit() throws IOException { - return DiskLruCache.this.edit(key, sequenceNumber); - } - - /** - * Returns the unbuffered stream with the value for {@code index}. - */ - public InputStream getInputStream(int index) { - return ins[index]; - } - - /** - * Returns the string value for {@code index}. - */ - public String getString(int index) throws IOException { - return inputStreamToString(getInputStream(index)); - } - - @Override public void close() { - for (InputStream in : ins) { - closeQuietly(in); - } - } - } - - /** - * Edits the values for an entry. - */ - public final class Editor { - private final Entry entry; - private boolean hasErrors; - - private Editor(Entry entry) { - this.entry = entry; - } - - /** - * Returns an unbuffered input stream to read the last committed value, - * or null if no value has been committed. - */ - public InputStream newInputStream(int index) throws IOException { - synchronized (DiskLruCache.this) { - if (entry.currentEditor != this) { - throw new IllegalStateException(); - } - if (!entry.readable) { - return null; - } - return new FileInputStream(entry.getCleanFile(index)); - } - } - - /** - * Returns the last committed value as a string, or null if no value - * has been committed. - */ - public String getString(int index) throws IOException { - InputStream in = newInputStream(index); - return in != null ? inputStreamToString(in) : null; - } - - /** - * Returns a new unbuffered output stream to write the value at - * {@code index}. If the underlying output stream encounters errors - * when writing to the filesystem, this edit will be aborted when - * {@link #commit} is called. The returned output stream does not throw - * IOExceptions. - */ - public OutputStream newOutputStream(int index) throws IOException { - synchronized (DiskLruCache.this) { - if (entry.currentEditor != this) { - throw new IllegalStateException(); - } - return new FaultHidingOutputStream(new FileOutputStream(entry.getDirtyFile(index))); - } - } - - /** - * Sets the value at {@code index} to {@code value}. - */ - public void set(int index, String value) throws IOException { - Writer writer = null; - try { - writer = new OutputStreamWriter(newOutputStream(index), UTF_8); - writer.write(value); - } finally { - closeQuietly(writer); - } - } - - /** - * Commits this edit so it is visible to readers. This releases the - * edit lock so another edit may be started on the same key. - */ - public void commit() throws IOException { - if (hasErrors) { - completeEdit(this, false); - remove(entry.key); // the previous entry is stale - } else { - completeEdit(this, true); - } - } - - /** - * Aborts this edit. This releases the edit lock so another edit may be - * started on the same key. - */ - public void abort() throws IOException { - completeEdit(this, false); - } - - private class FaultHidingOutputStream extends FilterOutputStream { - private FaultHidingOutputStream(OutputStream out) { - super(out); - } - - @Override public void write(int oneByte) { - try { - out.write(oneByte); - } catch (IOException e) { - hasErrors = true; - } - } - - @Override public void write(byte[] buffer, int offset, int length) { - try { - out.write(buffer, offset, length); - } catch (IOException e) { - hasErrors = true; - } - } - - @Override public void close() { - try { - out.close(); - } catch (IOException e) { - hasErrors = true; - } - } - - @Override public void flush() { - try { - out.flush(); - } catch (IOException e) { - hasErrors = true; - } - } - } - } - - private final class Entry { - private final String key; - - /** Lengths of this entry's files. */ - private final long[] lengths; - - /** True if this entry has ever been published */ - private boolean readable; - - /** The ongoing edit or null if this entry is not being edited. */ - private Editor currentEditor; - - /** The sequence number of the most recently committed edit to this entry. */ - private long sequenceNumber; - - private Entry(String key) { - this.key = key; - this.lengths = new long[valueCount]; - } - - public String getLengths() throws IOException { - StringBuilder result = new StringBuilder(); - for (long size : lengths) { - result.append(' ').append(size); - } - return result.toString(); - } - - /** - * Set lengths using decimal numbers like "10123". - */ - private void setLengths(String[] strings) throws IOException { - if (strings.length != valueCount) { - throw invalidLengths(strings); - } - - try { - for (int i = 0; i < strings.length; i++) { - lengths[i] = Long.parseLong(strings[i]); - } - } catch (NumberFormatException e) { - throw invalidLengths(strings); - } - } - - private IOException invalidLengths(String[] strings) throws IOException { - throw new IOException("unexpected journal line: " + Arrays.toString(strings)); - } - - public File getCleanFile(int i) { - return new File(directory, key + "." + i); - } - - public File getDirtyFile(int i) { - return new File(directory, key + "." + i + ".tmp"); - } - } -} diff --git a/app/src/main/java/net/oschina/app/cache/DiskLruCacheUtil.java b/app/src/main/java/net/oschina/app/cache/DiskLruCacheUtil.java deleted file mode 100644 index a02acff76..000000000 --- a/app/src/main/java/net/oschina/app/cache/DiskLruCacheUtil.java +++ /dev/null @@ -1,151 +0,0 @@ -package net.oschina.app.cache; - -import java.io.File; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; - -import net.oschina.app.util.TDevice; - -import org.kymjs.kjframe.utils.FileUtils; - -import android.content.Context; -import android.os.Environment; - -/** - * 缓存工具类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年12月26日 下午4:53:13 - * - */ - -public class DiskLruCacheUtil { - - private static int appVersion = TDevice.getVersionCode(); - - private static int valueCount = 1;// 同一个key可以对应多少个缓存文件 - - private static int maxSize = 10 * 1024 * 1024;// 一个缓存文件最大可以缓存10M - - public static final String CACHE_OBJECT = "object";// 对象缓存目录 - - /** - * 保存对象缓存 - * - * @param context - * @param ser - * @param key - */ - public static void saveObject(Context context, Serializable ser, String key) { - ObjectOutputStream oos = null; - try { - DiskLruCache.Editor editor = getDiskLruCacheOutputStream(context, - CACHE_OBJECT, key); - if (editor != null) { - oos = new ObjectOutputStream(editor.newOutputStream(0)); - oos.writeObject(ser); - oos.flush(); - editor.commit(); - } - } catch (IOException e) { - - e.printStackTrace(); - } finally { - FileUtils.closeIO(oos); - } - } - - /** - * 读取对象缓存 - * - * @param context - * @param key - * @return - */ - public static Serializable readObject(Context context, String key) { - ObjectInputStream ois = null; - try { - DiskLruCache.Editor editor = getDiskLruCacheOutputStream(context, - CACHE_OBJECT, key); - ois = new ObjectInputStream(editor.newInputStream(0)); - return (Serializable) ois.readObject(); - } catch (IOException e) { - e.printStackTrace(); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } finally { - FileUtils.closeIO(ois); - } - return null; - } - - /** - * 获取DiskLruCache的editor - * - * @param context - * @param key - * @return - * @throws IOException - */ - public static DiskLruCache.Editor getDiskLruCacheOutputStream( - Context context, String uniqueName, String key) throws IOException { - DiskLruCache mDiskLruCache = DiskLruCache.open( - getDiskCacheDir(context, uniqueName), appVersion, valueCount, - maxSize); - DiskLruCache.Editor editor = mDiskLruCache.edit(hashKeyForDisk(key)); - return editor; - } - - /** - * 获取相应的缓存目录 - * - * @param context - * @param uniqueName - * @return - */ - public static File getDiskCacheDir(Context context, String uniqueName) { - String cachePath; - if (Environment.MEDIA_MOUNTED.equals(Environment - .getExternalStorageState()) - || !Environment.isExternalStorageRemovable()) { - cachePath = context.getExternalCacheDir().getPath(); - } else { - cachePath = context.getCacheDir().getPath(); - } - return new File(cachePath + File.separator + uniqueName); - } - - /** - * 传入缓存的key值,以得到相应的MD5值 - * - * @param key - * @return - */ - public static String hashKeyForDisk(String key) { - String cacheKey; - try { - final MessageDigest mDigest = MessageDigest.getInstance("MD5"); - mDigest.update(key.getBytes()); - cacheKey = bytesToHexString(mDigest.digest()); - } catch (NoSuchAlgorithmException e) { - cacheKey = String.valueOf(key.hashCode()); - } - return cacheKey; - } - - private static String bytesToHexString(byte[] bytes) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < bytes.length; i++) { - String hex = Integer.toHexString(0xFF & bytes[i]); - if (hex.length() == 1) { - sb.append('0'); - } - sb.append(hex); - } - return sb.toString(); - } -} diff --git a/app/src/main/java/net/oschina/app/db/DatabaseHelper.java b/app/src/main/java/net/oschina/app/db/DatabaseHelper.java deleted file mode 100644 index 469cb0340..000000000 --- a/app/src/main/java/net/oschina/app/db/DatabaseHelper.java +++ /dev/null @@ -1,45 +0,0 @@ -package net.oschina.app.db; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteOpenHelper; - -/** - * 创建便签的数据库 - * - * @author kymjs - * - * update:2014-01-12 updateor: fireant 内容:修改为全应用数据库 - * - */ -public class DatabaseHelper extends SQLiteOpenHelper { - - public static final String OSC_DATABASE_NAME = "oschina"; - - public static final String NOTE_TABLE_NAME = "osc_Notebook"; - - public static final String CREATE_NOTE_TABLE = "create table " - + NOTE_TABLE_NAME - + " (_id integer primary key autoincrement, iid integer," - + " time varchar(10), date varchar(10), content text, color integer)"; - - public static final String NEWS_LIST = "osc_news_list"; - - public static final String CREATE_NEWS_LIST_TABLE = "create table " - + NOTE_TABLE_NAME + "(" + "_id integer primary key autoincrement, " - + "news_id interger, title varchar(10), " + ")"; - - public DatabaseHelper(Context context) { - super(context, OSC_DATABASE_NAME, null, 1); - } - - @Override - public void onCreate(SQLiteDatabase db) { - db.execSQL(CREATE_NOTE_TABLE); - // db.execSQL(CREATE_NEWS_LIST_TABLE); - } - - @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {} - -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/db/NoteDatabase.java b/app/src/main/java/net/oschina/app/db/NoteDatabase.java deleted file mode 100644 index d7f957283..000000000 --- a/app/src/main/java/net/oschina/app/db/NoteDatabase.java +++ /dev/null @@ -1,161 +0,0 @@ -package net.oschina.app.db; - -import java.util.ArrayList; -import java.util.List; - -import net.oschina.app.bean.NotebookData; -import android.content.Context; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; - -public class NoteDatabase { - private final DatabaseHelper dbHelper; - - public NoteDatabase(Context context) { - super(); - dbHelper = new DatabaseHelper(context); - } - - /** - * 增 - * - * @param data - */ - public void insert(NotebookData data) { - String sql = "insert into " + DatabaseHelper.NOTE_TABLE_NAME; - - sql += "(_id, iid, time, date, content, color) values(?, ?, ?, ?, ?, ?)"; - - SQLiteDatabase sqlite = dbHelper.getWritableDatabase(); - sqlite.execSQL(sql, new String[] { data.getId() + "", - data.getIid() + "", data.getUnixTime() + "", data.getDate(), - data.getContent(), data.getColor() + "" }); - sqlite.close(); - } - - /** - * 删 - * - * @param id - */ - public void delete(int id) { - SQLiteDatabase sqlite = dbHelper.getWritableDatabase(); - String sql = ("delete from " + DatabaseHelper.NOTE_TABLE_NAME + " where _id=?"); - sqlite.execSQL(sql, new Integer[] { id }); - sqlite.close(); - } - - /** - * 改 - * - * @param data - */ - public void update(NotebookData data) { - SQLiteDatabase sqlite = dbHelper.getWritableDatabase(); - String sql = ("update " + DatabaseHelper.NOTE_TABLE_NAME + " set iid=?, time=?, date=?, content=?, color=? where _id=?"); - sqlite.execSQL(sql, - new String[] { data.getIid() + "", data.getUnixTime() + "", - data.getDate(), data.getContent(), - data.getColor() + "", data.getId() + "" }); - sqlite.close(); - } - - public List query() { - return query(" "); - } - - /** - * 查 - * - * @param where - * @return - */ - public List query(String where) { - SQLiteDatabase sqlite = dbHelper.getReadableDatabase(); - ArrayList data = null; - data = new ArrayList(); - Cursor cursor = sqlite.rawQuery("select * from " - + DatabaseHelper.NOTE_TABLE_NAME + where, null); - for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { - NotebookData notebookData = new NotebookData(); - notebookData.setId(cursor.getInt(0)); - notebookData.setIid(cursor.getInt(1)); - notebookData.setUnixTime(cursor.getString(2)); - notebookData.setDate(cursor.getString(3)); - notebookData.setContent(cursor.getString(4)); - notebookData.setColor(cursor.getInt(5)); - data.add(notebookData); - } - if (!cursor.isClosed()) { - cursor.close(); - } - sqlite.close(); - - return data; - } - - /** - * 重置 - * - * @param datas - */ - public void reset(List datas) { - if (datas != null) { - SQLiteDatabase sqlite = dbHelper.getWritableDatabase(); - // 删除全部 - sqlite.execSQL("delete from " + DatabaseHelper.NOTE_TABLE_NAME); - // 重新添加 - for (NotebookData data : datas) { - insert(data); - } - sqlite.close(); - } - } - - /** - * 保存一条数据到本地(若已存在则直接覆盖) - * - * @param data - */ - public void save(NotebookData data) { - List datas = query(" where _id=" + data.getId()); - if (datas != null && !datas.isEmpty()) { - update(data); - } else { - insert(data); - } - } - - // - // /** - // * 合并一条数据到本地(通过更新时间判断仅保留最新) - // * - // * @param data - // * @return 数据是否被合并了 - // */ - // public boolean merge(NotebookData data) { - // Cursor cursor = sqlite.rawQuery( - // "select * from " + DatabaseHelper.NOTE_TABLE_NAME - // + " where _id=" + data.getId(), null); - // NotebookData localData = new NotebookData(); - // // 本循环其实只执行一次 - // for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { - // localData.setId(cursor.getInt(0)); - // localData.setIid(cursor.getInt(1)); - // localData.setUnixTime(cursor.getString(2)); - // localData.setDate(cursor.getString(3)); - // localData.setContent(cursor.getString(4)); - // localData.setColor(cursor.getInt(5)); - // } - // // 是否需要合这条数据 - // boolean isMerge = localData.getUnixTime() < data.getUnixTime(); - // if (isMerge) { - // save(data); - // } - // return isMerge; - // } - - public void destroy() { - dbHelper.close(); - } -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/emoji/DisplayRules.java b/app/src/main/java/net/oschina/app/emoji/DisplayRules.java deleted file mode 100644 index 90440197b..000000000 --- a/app/src/main/java/net/oschina/app/emoji/DisplayRules.java +++ /dev/null @@ -1,907 +0,0 @@ -/* - * Copyright (c) 2015, 张涛. - * - * 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. - */ -package net.oschina.app.emoji; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import net.oschina.app.R; - -/** - * Emoji在手机上的显示规则 - * - * @author kymjs (http://www.kymjs.com) - */ -public enum DisplayRules { - // 注意:value不能从0开始,因为0会被库自动设置为删除按钮 - // int type, int value, int resId, String cls - KJEMOJI0(0, 1, R.drawable.smiley_0, "[微笑]", "[0]"), KJEMOJI1(0, 1, - R.drawable.smiley_1, "[撇嘴]", "[1]"), KJEMOJI2(0, 1, - R.drawable.smiley_2, "[色]", "[2]"), KJEMOJI3(0, 1, - R.drawable.smiley_3, "[发呆]", "[3]"), KJEMOJI4(0, 1, - R.drawable.smiley_4, "[得意]", "[4]"), KJEMOJI5(0, 1, - R.drawable.smiley_5, "[流泪]", "[5]"), KJEMOJI6(0, 1, - R.drawable.smiley_6, "[害羞]", "[6]"), KJEMOJI7(0, 1, - R.drawable.smiley_7, "[闭嘴]", "[7]"), KJEMOJI8(0, 1, - R.drawable.smiley_8, "[睡]", "[8]"), KJEMOJI9(0, 1, - R.drawable.smiley_9, "[大哭]", "[9]"), KJEMOJI10(0, 1, - R.drawable.smiley_10, "[尴尬]", "[10]"), KJEMOJI11(0, 1, - R.drawable.smiley_11, "[发怒]", "[11]"), KJEMOJI12(0, 1, - R.drawable.smiley_12, "调皮", "[12]"), KJEMOJI13(0, 1, - R.drawable.smiley_13, "[呲牙]", "[13]"), KJEMOJI14(0, 1, - R.drawable.smiley_14, "[惊讶]", "[14]"), KJEMOJI15(0, 1, - R.drawable.smiley_15, "[难过]", "[15]"), KJEMOJI16(0, 1, - R.drawable.smiley_16, "[酷]", "[16]"), KJEMOJI17(0, 1, - R.drawable.smiley_17, "[冷汗]", "[17]"), KJEMOJI18(0, 1, - R.drawable.smiley_18, "[抓狂]", "[18]"), KJEMOJI19(0, 1, - R.drawable.smiley_19, "[吐]", "[19]"), KJEMOJI20(0, 1, - R.drawable.smiley_20, "[偷笑]", "[20]"), KJEMOJI21(0, 1, - R.drawable.smiley_21, "[可爱]", "[21]"), KJEMOJI22(0, 1, - R.drawable.smiley_22, "[白眼]", "[22]"), KJEMOJI23(0, 1, - R.drawable.smiley_23, "[傲慢]", "[23]"), KJEMOJI24(0, 1, - R.drawable.smiley_24, "[饥饿]", "[24]"), KJEMOJI25(0, 1, - R.drawable.smiley_25, "[困]", "[25]"), KJEMOJI26(0, 1, - R.drawable.smiley_26, "[惊恐]", "[26]"), KJEMOJI27(0, 1, - R.drawable.smiley_27, "[流汗]", "[27]"), KJEMOJI28(0, 1, - R.drawable.smiley_28, "[憨笑]", "[28]"), KJEMOJI29(0, 1, - R.drawable.smiley_29, "[大兵]", "[29]"), KJEMOJI30(0, 1, - R.drawable.smiley_30, "[奋斗]", "[30]"), KJEMOJI31(0, 1, - R.drawable.smiley_31, "[咒骂]", "[31]"), KJEMOJI32(0, 1, - R.drawable.smiley_32, "[疑问]", "[32]"), KJEMOJI33(0, 1, - R.drawable.smiley_33, "[嘘]", "[33]"), KJEMOJI34(0, 1, - R.drawable.smiley_34, "[晕]", "[34]"), KJEMOJI35(0, 1, - R.drawable.smiley_35, "折磨", "[35]"), KJEMOJI36(0, 1, - R.drawable.smiley_36, "衰", "[36]"), KJEMOJI37(0, 1, - R.drawable.smiley_37, "骷髅", "[37]"), KJEMOJI38(0, 1, - R.drawable.smiley_38, "敲打", "[38]"), KJEMOJI39(0, 1, - R.drawable.smiley_39, "再见", "[39]"), KJEMOJI40(0, 1, - R.drawable.smiley_40, "擦汗", "[40]"), KJEMOJI41(0, 1, - R.drawable.smiley_41, "抠鼻", "[41]"), KJEMOJI42(0, 1, - R.drawable.smiley_42, "鼓掌", "[42]"), KJEMOJI43(0, 1, - R.drawable.smiley_43, "糗大了", "[43]"), KJEMOJI44(0, 1, - R.drawable.smiley_44, "坏笑", "[44]"), KJEMOJI45(0, 1, - R.drawable.smiley_45, "[左哼哼]", "[45]"), KJEMOJI46(0, 1, - R.drawable.smiley_46, "[右哼哼]", "[46]"), KJEMOJI47(0, 1, - R.drawable.smiley_47, "[哈欠]", "[47]"), KJEMOJI48(0, 1, - R.drawable.smiley_48, "[鄙视]", "[48]"), KJEMOJI49(0, 1, - R.drawable.smiley_49, "[委屈]", "[49]"), KJEMOJI50(0, 1, - R.drawable.smiley_50, "[快哭了]", "[50]"), KJEMOJI51(0, 1, - R.drawable.smiley_51, "[阴险]", "[51]"), KJEMOJI52(0, 1, - R.drawable.smiley_52, "[亲亲]", "[52]"), KJEMOJI53(0, 1, - R.drawable.smiley_53, "[吓]", "[53]"), KJEMOJI54(0, 1, - R.drawable.smiley_54, "[可怜]", "[54]"), KJEMOJI55(0, 1, - R.drawable.smiley_55, "[菜刀]", "[55]"), KJEMOJI56(0, 1, - R.drawable.smiley_56, "[西瓜]", "[56]"), KJEMOJI57(0, 1, - R.drawable.smiley_57, "[啤酒]", "[57]"), KJEMOJI58(0, 1, - R.drawable.smiley_58, "[篮球]", "[58]"), KJEMOJI59(0, 1, - R.drawable.smiley_59, "[乒乓]", "[59]"), KJEMOJI60(0, 1, - R.drawable.smiley_60, "[咖啡]", "[60]"), KJEMOJI61(0, 1, - R.drawable.smiley_61, "[饭]", "[61]"), KJEMOJI62(0, 1, - R.drawable.smiley_62, "[猪头]", "[62]"), KJEMOJI63(0, 1, - R.drawable.smiley_63, "[玫瑰]", "[63]"), KJEMOJI64(0, 1, - R.drawable.smiley_64, "[凋谢]", "[64]"), KJEMOJI65(0, 1, - R.drawable.smiley_65, "[嘴唇]", "[65]"), KJEMOJI66(0, 1, - R.drawable.smiley_66, "[爱心]", "[66]"), KJEMOJI67(0, 1, - R.drawable.smiley_67, "[心碎]", "[67]"), KJEMOJI68(0, 1, - R.drawable.smiley_68, "[蛋糕]", "[68]"), KJEMOJI69(0, 1, - R.drawable.smiley_69, "[闪电]", "[69]"), KJEMOJI70(0, 1, - R.drawable.smiley_70, "[炸弹]", "[70]"), KJEMOJI71(0, 1, - R.drawable.smiley_71, "[刀]", "[71]"), KJEMOJI72(0, 1, - R.drawable.smiley_72, "[足球]", "[72]"), KJEMOJI73(0, 1, - R.drawable.smiley_73, "[瓢虫]", "[73]"), KJEMOJI74(0, 1, - R.drawable.smiley_74, "[便便]", "[74]"), KJEMOJI75(0, 1, - R.drawable.smiley_75, "[月亮]", "[75]"), KJEMOJI76(0, 1, - R.drawable.smiley_76, "[太阳]", "[76]"), KJEMOJI77(0, 1, - R.drawable.smiley_77, "[礼物]", "[77]"), KJEMOJI78(0, 1, - R.drawable.smiley_78, "[拥抱]", "[78]"), KJEMOJI79(0, 1, - R.drawable.smiley_79, "[强]", "[79]"), KJEMOJI80(0, 1, - R.drawable.smiley_80, "[弱]", "[80]"), KJEMOJI81(0, 1, - R.drawable.smiley_81, "[握手]", "[81]"), KJEMOJI82(0, 1, - R.drawable.smiley_82, "[胜利]", "[82]"), KJEMOJI83(0, 1, - R.drawable.smiley_83, "[抱拳]", "[83]"), KJEMOJI84(0, 1, - R.drawable.smiley_84, "[勾引]", "[84]"), KJEMOJI85(0, 1, - R.drawable.smiley_85, "[拳头]", "[85]"), KJEMOJI86(0, 1, - R.drawable.smiley_86, "[差劲]", "[86]"), KJEMOJI87(0, 1, - R.drawable.smiley_87, "[爱你]", "[87]"), KJEMOJI88(0, 1, - R.drawable.smiley_88, "[NO]", "[88]"), KJEMOJI89(0, 1, - R.drawable.smiley_89, "[OK]", "[89]"), KJEMOJI90(0, 1, - R.drawable.smiley_90, "[爱情]", "[90]"), KJEMOJI91(0, 1, - R.drawable.smiley_91, "[飞吻]", "[91]"), KJEMOJI92(0, 1, - R.drawable.smiley_92, "[跳跳]", "[92]"), KJEMOJI93(0, 1, - R.drawable.smiley_93, "[发抖]", "[93]"), KJEMOJI94(0, 1, - R.drawable.smiley_94, "[怄火]", "[94]"), KJEMOJI95(0, 1, - R.drawable.smiley_95, "[转圈]", "[95]"), KJEMOJI96(0, 1, - R.drawable.smiley_96, "[磕头]", "[96]"), KJEMOJI97(0, 1, - R.drawable.smiley_97, "[回头]", "[97]"), KJEMOJI98(0, 1, - R.drawable.smiley_98, "[跳绳]", "[98]"), KJEMOJI99(0, 1, - R.drawable.smiley_99, "[投降]", "[99]"), KJEMOJI100(0, 1, - R.drawable.smiley_100, "[激动]", "[100]"), KJEMOJI101(0, 1, - R.drawable.smiley_101, "[乱舞]", "[101]"), KJEMOJI102(0, 1, - R.drawable.smiley_102, "[献吻]", "[102]"), KJEMOJI103(0, 1, - R.drawable.smiley_103, "[左太极]", "[103]"), KJEMOJI104(0, 1, - R.drawable.smiley_104, "[右太极]", "[104]"), - - GITHUB0(1, 1, R.drawable.bowtie, ":bowtie:", ":bowtie:"), - - GITHUB1(1, 1, R.drawable.smile, ":smile:", ":smile:"), - - GITHUB2(1, 1, R.drawable.laughing, ":laughing:", ":laughing:"), - - GITHUB3(1, 1, R.drawable.blush, ":blush:", ":blush:"), - - GITHUB4(1, 1, R.drawable.smiley, ":smiley:", ":smiley:"), - - GITHUB5(1, 1, R.drawable.relaxed, ":relaxed:", ":relaxed:"), - - GITHUB6(1, 1, R.drawable.smirk, ":smirk:", ":smirk:"), - - GITHUB7(1, 1, R.drawable.heart_eyes, ":heart_eyes:", ":heart_eyes:"), - - GITHUB8(1, 1, R.drawable.kissing_heart, ":kissing_heart:", - ":kissing_heart:"), - - GITHUB9(1, 1, R.drawable.kissing_closed_eyes, ":kissing_closed_eyes:", - ":kissing_closed_eyes:"), - - GITHUB10(1, 1, R.drawable.flushed, ":flushed:", ":flushed:"), - - GITHUB11(1, 1, R.drawable.relieved, ":relieved:", ":relieved:"), - - GITHUB12(1, 1, R.drawable.satisfied, ":satisfied:", ":satisfied:"), - - GITHUB13(1, 1, R.drawable.grin, ":grin:", ":grin:"), - - GITHUB14(1, 1, R.drawable.wink, ":wink:", ":wink:"), - - GITHUB15(1, 1, R.drawable.stuck_out_tongue_winking_eye, - ":stuck_out_tongue_winking_eye:", ":stuck_out_tongue_winking_eye:"), - - GITHUB16(1, 1, R.drawable.stuck_out_tongue_closed_eyes, - ":stuck_out_tongue_closed_eyes:", ":stuck_out_tongue_closed_eyes:"), - - GITHUB17(1, 1, R.drawable.grinning, ":grinning:", ":grinning:"), - - GITHUB18(1, 1, R.drawable.kissing, ":kissing:", ":kissing:"), - - GITHUB19(1, 1, R.drawable.kissing_smiling_eyes, ":kissing_smiling_eyes:", - ":kissing_smiling_eyes:"), - - GITHUB20(1, 1, R.drawable.stuck_out_tongue, ":stuck_out_tongue:", - ":stuck_out_tongue:"), - - GITHUB21(1, 1, R.drawable.sleeping, ":sleeping:", ":sleeping:"), - - GITHUB22(1, 1, R.drawable.worried, ":worried:", ":worried:"), - - GITHUB23(1, 1, R.drawable.frowning, ":frowning:", ":frowning:"), - - GITHUB24(1, 1, R.drawable.anguished, ":anguished:", ":anguished:"), - - GITHUB25(1, 1, R.drawable.open_mouth, ":open_mouth:", ":open_mouth:"), - - GITHUB26(1, 1, R.drawable.grimacing, ":grimacing:", ":grimacing:"), - - GITHUB27(1, 1, R.drawable.confused, ":confused:", ":confused:"), - - GITHUB28(1, 1, R.drawable.hushed, ":hushed:", ":hushed:"), - - GITHUB29(1, 1, R.drawable.expressionless, ":expressionless:", - ":expressionless:"), - - GITHUB30(1, 1, R.drawable.unamused, ":unamused:", ":unamused:"), - - GITHUB31(1, 1, R.drawable.sweat_smile, ":sweat_smile:", ":sweat_smile:"), - - GITHUB32(1, 1, R.drawable.sweat, ":sweat:", ":sweat:"), - - GITHUB33(1, 1, R.drawable.disappointed_relieved, ":disappointed_relieved:", - ":disappointed_relieved:"), - - GITHUB34(1, 1, R.drawable.weary, ":weary:", ":weary:"), - - GITHUB35(1, 1, R.drawable.pensive, ":pensive:", ":pensive:"), - - GITHUB36(1, 1, R.drawable.disappointed, ":disappointed:", ":disappointed:"), - - GITHUB37(1, 1, R.drawable.confounded, ":confounded:", ":confounded:"), - - GITHUB38(1, 1, R.drawable.fearful, ":fearful:", ":fearful:"), - - GITHUB39(1, 1, R.drawable.cold_sweat, ":cold_sweat:", ":cold_sweat:"), - - GITHUB40(1, 1, R.drawable.persevere, ":persevere:", ":persevere:"), - - GITHUB41(1, 1, R.drawable.cry, ":cry:", ":cry:"), - - GITHUB42(1, 1, R.drawable.sob, ":sob:", ":sob:"), - - GITHUB43(1, 1, R.drawable.joy, ":joy:", ":joy:"), - - GITHUB44(1, 1, R.drawable.astonished, ":astonished:", ":astonished:"), - - GITHUB45(1, 1, R.drawable.scream, ":scream:", ":scream:"), - - GITHUB46(1, 1, R.drawable.neckbeard, ":neckbeard:", ":neckbeard:"), - - GITHUB47(1, 1, R.drawable.tired_face, ":tired_face:", ":tired_face:"), - - GITHUB48(1, 1, R.drawable.angry, ":angry:", ":angry:"), - - GITHUB49(1, 1, R.drawable.rage, ":rage:", ":rage:"), - - GITHUB50(1, 1, R.drawable.triumph, ":triumph:", ":triumph:"), - - GITHUB51(1, 1, R.drawable.sleepy, ":sleepy:", ":sleepy:"), - - GITHUB52(1, 1, R.drawable.yum, ":yum:", ":yum:"), - - GITHUB53(1, 1, R.drawable.mask, ":mask:", ":mask:"), - - GITHUB54(1, 1, R.drawable.sunglasses, ":sunglasses:", ":sunglasses:"), - - GITHUB55(1, 1, R.drawable.dizzy_face, ":dizzy_face:", ":dizzy_face:"), - - GITHUB56(1, 1, R.drawable.imp, ":imp:", ":imp:"), - - GITHUB57(1, 1, R.drawable.smiling_imp, ":smiling_imp:", ":smiling_imp:"), - - GITHUB58(1, 1, R.drawable.neutral_face, ":neutral_face:", ":neutral_face:"), - - GITHUB59(1, 1, R.drawable.no_mouth, ":no_mouth:", ":no_mouth:"), - - GITHUB60(1, 1, R.drawable.innocent, ":innocent:", ":innocent:"), - - GITHUB61(1, 1, R.drawable.alien, ":alien:", ":alien:"), - - GITHUB62(1, 1, R.drawable.yellow_heart, ":yellow_heart:", ":yellow_heart:"), - - GITHUB63(1, 1, R.drawable.blue_heart, ":blue_heart:", ":blue_heart:"), - - GITHUB64(1, 1, R.drawable.purple_heart, ":purple_heart:", ":purple_heart:"), - - GITHUB65(1, 1, R.drawable.heart, ":heart:", ":heart:"), - - GITHUB66(1, 1, R.drawable.green_heart, ":green_heart:", ":green_heart:"), - - GITHUB67(1, 1, R.drawable.broken_heart, ":broken_heart:", ":broken_heart:"), - - GITHUB68(1, 1, R.drawable.heartbeat, ":heartbeat:", ":heartbeat:"), - - GITHUB69(1, 1, R.drawable.heartpulse, ":heartpulse:", ":heartpulse:"), - - GITHUB70(1, 1, R.drawable.two_hearts, ":two_hearts:", ":two_hearts:"), - - GITHUB71(1, 1, R.drawable.revolving_hearts, ":revolving_hearts:", - ":revolving_hearts:"), - - GITHUB72(1, 1, R.drawable.cupid, ":cupid:", ":cupid:"), - - GITHUB73(1, 1, R.drawable.sparkling_heart, ":sparkling_heart:", - ":sparkling_heart:"), - - GITHUB74(1, 1, R.drawable.sparkles, ":sparkles:", ":sparkles:"), - - GITHUB75(1, 1, R.drawable.star, ":star:", ":star:"), - - GITHUB76(1, 1, R.drawable.star2, ":star2:", ":star2:"), - - GITHUB77(1, 1, R.drawable.dizzy, ":dizzy:", ":dizzy:"), - - GITHUB78(1, 1, R.drawable.boom, ":boom:", ":boom:"), - - GITHUB79(1, 1, R.drawable.collision, ":collision:", ":collision:"), - - GITHUB80(1, 1, R.drawable.anger, ":anger:", ":anger:"), - - GITHUB81(1, 1, R.drawable.exclamation, ":exclamation:", ":exclamation:"), - - GITHUB82(1, 1, R.drawable.question, ":question:", ":question:"), - - GITHUB83(1, 1, R.drawable.grey_exclamation, ":grey_exclamation:", - ":grey_exclamation:"), - - GITHUB84(1, 1, R.drawable.grey_question, ":grey_question:", - ":grey_question:"), - - GITHUB85(1, 1, R.drawable.zzz, ":zzz:", ":zzz:"), - - GITHUB86(1, 1, R.drawable.dash, ":dash:", ":dash:"), - - GITHUB87(1, 1, R.drawable.sweat_drops, ":sweat_drops:", ":sweat_drops:"), - - GITHUB88(1, 1, R.drawable.notes, ":notes:", ":notes:"), - - GITHUB89(1, 1, R.drawable.musical_note, ":musical_note:", ":musical_note:"), - - GITHUB90(1, 1, R.drawable.fire, ":fire:", ":fire:"), - - GITHUB91(1, 1, R.drawable.hankey, ":hankey:", ":hankey:"), - - GITHUB92(1, 1, R.drawable.poop, ":poop:", ":poop:"), - - GITHUB93(1, 1, R.drawable.shit, ":shit:", ":shit:"), - - GITHUB94(1, 1, R.drawable.thumbsup, ":+1:", ":+1:"), - - GITHUB95(1, 1, R.drawable.thumbsup, ":thumbsup:", ":thumbsup:"), - - GITHUB96(1, 1, R.drawable.the_1, ":-1:", ":-1:"), - - GITHUB97(1, 1, R.drawable.thumbsdown, ":thumbsdown:", ":thumbsdown:"), - - GITHUB98(1, 1, R.drawable.ok_hand, ":ok_hand:", ":ok_hand:"), - - GITHUB99(1, 1, R.drawable.punch, ":punch:", ":punch:"), - - GITHUB100(1, 1, R.drawable.facepunch, ":facepunch:", ":facepunch:"), - - GITHUB101(1, 1, R.drawable.fist, ":fist:", ":fist:"), - - GITHUB102(1, 1, R.drawable.v, ":v:", ":v:"), - - GITHUB103(1, 1, R.drawable.wave, ":wave:", ":wave:"), - - GITHUB104(1, 1, R.drawable.hand, ":hand:", ":hand:"), - - GITHUB105(1, 1, R.drawable.raised_hand, ":raised_hand:", ":raised_hand:"), - - GITHUB106(1, 1, R.drawable.open_hands, ":open_hands:", ":open_hands:"), - - GITHUB107(1, 1, R.drawable.point_up, ":point_up:", ":point_up:"), - - GITHUB108(1, 1, R.drawable.point_down, ":point_down:", ":point_down:"), - - GITHUB109(1, 1, R.drawable.point_left, ":point_left:", ":point_left:"), - - GITHUB110(1, 1, R.drawable.point_right, ":point_right:", ":point_right:"), - - GITHUB111(1, 1, R.drawable.raised_hands, ":raised_hands:", ":raised_hands:"), - - GITHUB112(1, 1, R.drawable.pray, ":pray:", ":pray:"), - - GITHUB113(1, 1, R.drawable.point_up_2, ":point_up_2:", ":point_up_2:"), - - GITHUB114(1, 1, R.drawable.clap, ":clap:", ":clap:"), - - GITHUB115(1, 1, R.drawable.muscle, ":muscle:", ":muscle:"), - - GITHUB116(1, 1, R.drawable.metal, ":metal:", ":metal:"), - - GITHUB117(1, 1, R.drawable.fu, ":fu:", ":fu:"), - - GITHUB118(1, 1, R.drawable.walking, ":walking:", ":walking:"), - - GITHUB119(1, 1, R.drawable.runner, ":runner:", ":runner:"), - - GITHUB120(1, 1, R.drawable.running, ":running:", ":running:"), - - GITHUB121(1, 1, R.drawable.couple, ":couple:", ":couple:"), - - GITHUB122(1, 1, R.drawable.family, ":family:", ":family:"), - - GITHUB123(1, 1, R.drawable.two_men_holding_hands, - ":two_men_holding_hands:", ":two_men_holding_hands:"), - - GITHUB124(1, 1, R.drawable.two_women_holding_hands, - ":two_women_holding_hands:", ":two_women_holding_hands:"), - - GITHUB125(1, 1, R.drawable.dancer, ":dancer:", ":dancer:"), - - GITHUB126(1, 1, R.drawable.dancers, ":dancers:", ":dancers:"), - - GITHUB127(1, 1, R.drawable.ok_woman, ":ok_woman:", ":ok_woman:"), - - GITHUB128(1, 1, R.drawable.no_good, ":no_good:", ":no_good:"), - - GITHUB129(1, 1, R.drawable.information_desk_person, - ":information_desk_person:", ":information_desk_person:"), - - GITHUB130(1, 1, R.drawable.raising_hand, ":raising_hand:", ":raising_hand:"), - - GITHUB131(1, 1, R.drawable.bride_with_veil, ":bride_with_veil:", - ":bride_with_veil:"), - - GITHUB132(1, 1, R.drawable.person_with_pouting_face, - ":person_with_pouting_face:", ":person_with_pouting_face:"), - - GITHUB133(1, 1, R.drawable.person_frowning, ":person_frowning:", - ":person_frowning:"), - - GITHUB134(1, 1, R.drawable.bow, ":bow:", ":bow:"), - - GITHUB135(1, 1, R.drawable.couplekiss, ":couplekiss:", ":couplekiss:"), - - GITHUB136(1, 1, R.drawable.couple_with_heart, ":couple_with_heart:", - ":couple_with_heart:"), - - GITHUB137(1, 1, R.drawable.massage, ":massage:", ":massage:"), - - GITHUB138(1, 1, R.drawable.haircut, ":haircut:", ":haircut:"), - - GITHUB139(1, 1, R.drawable.nail_care, ":nail_care:", ":nail_care:"), - - GITHUB140(1, 1, R.drawable.boy, ":boy:", ":boy:"), - - GITHUB141(1, 1, R.drawable.girl, ":girl:", ":girl:"), - - GITHUB142(1, 1, R.drawable.woman, ":woman:", ":woman:"), - - GITHUB143(1, 1, R.drawable.man, ":man:", ":man:"), - - GITHUB144(1, 1, R.drawable.baby, ":baby:", ":baby:"), - - GITHUB145(1, 1, R.drawable.older_woman, ":older_woman:", ":older_woman:"), - - GITHUB146(1, 1, R.drawable.older_man, ":older_man:", ":older_man:"), - - GITHUB147(1, 1, R.drawable.person_with_blond_hair, - ":person_with_blond_hair:", ":person_with_blond_hair:"), - - GITHUB148(1, 1, R.drawable.man_with_gua_pi_mao, ":man_with_gua_pi_mao:", - ":man_with_gua_pi_mao:"), - - GITHUB149(1, 1, R.drawable.man_with_turban, ":man_with_turban:", - ":man_with_turban:"), - - GITHUB150(1, 1, R.drawable.construction_worker, ":construction_worker:", - ":construction_worker:"), - - GITHUB151(1, 1, R.drawable.cop, ":cop:", ":cop:"), - - GITHUB152(1, 1, R.drawable.angel, ":angel:", ":angel:"), - - GITHUB153(1, 1, R.drawable.princess, ":princess:", ":princess:"), - - GITHUB154(1, 1, R.drawable.smiley_cat, ":smiley_cat:", ":smiley_cat:"), - - GITHUB155(1, 1, R.drawable.smile_cat, ":smile_cat:", ":smile_cat:"), - - GITHUB156(1, 1, R.drawable.heart_eyes_cat, ":heart_eyes_cat:", - ":heart_eyes_cat:"), - - GITHUB157(1, 1, R.drawable.kissing_cat, ":kissing_cat:", ":kissing_cat:"), - - GITHUB158(1, 1, R.drawable.smirk_cat, ":smirk_cat:", ":smirk_cat:"), - - GITHUB159(1, 1, R.drawable.scream_cat, ":scream_cat:", ":scream_cat:"), - - GITHUB160(1, 1, R.drawable.crying_cat_face, ":crying_cat_face:", - ":crying_cat_face:"), - - GITHUB161(1, 1, R.drawable.joy_cat, ":joy_cat:", ":joy_cat:"), - - GITHUB162(1, 1, R.drawable.pouting_cat, ":pouting_cat:", ":pouting_cat:"), - - GITHUB163(1, 1, R.drawable.japanese_ogre, ":japanese_ogre:", - ":japanese_ogre:"), - - GITHUB164(1, 1, R.drawable.japanese_goblin, ":japanese_goblin:", - ":japanese_goblin:"), - - GITHUB165(1, 1, R.drawable.see_no_evil, ":see_no_evil:", ":see_no_evil:"), - - GITHUB166(1, 1, R.drawable.hear_no_evil, ":hear_no_evil:", ":hear_no_evil:"), - - GITHUB167(1, 1, R.drawable.speak_no_evil, ":speak_no_evil:", - ":speak_no_evil:"), - - GITHUB168(1, 1, R.drawable.guardsman, ":guardsman:", ":guardsman:"), - - GITHUB169(1, 1, R.drawable.skull, ":skull:", ":skull:"), - - GITHUB170(1, 1, R.drawable.feet, ":feet:", ":feet:"), - - GITHUB171(1, 1, R.drawable.lips, ":lips:", ":lips:"), - - GITHUB172(1, 1, R.drawable.kiss, ":kiss:", ":kiss:"), - - GITHUB173(1, 1, R.drawable.droplet, ":droplet:", ":droplet:"), - - GITHUB174(1, 1, R.drawable.ear, ":ear:", ":ear:"), - - GITHUB175(1, 1, R.drawable.eyes, ":eyes:", ":eyes:"), - - GITHUB176(1, 1, R.drawable.nose, ":nose:", ":nose:"), - - GITHUB177(1, 1, R.drawable.tongue, ":tongue:", ":tongue:"), - - GITHUB178(1, 1, R.drawable.love_letter, ":love_letter:", ":love_letter:"), - - GITHUB179(1, 1, R.drawable.bust_in_silhouette, ":bust_in_silhouette:", - ":bust_in_silhouette:"), - - GITHUB180(1, 1, R.drawable.busts_in_silhouette, ":busts_in_silhouette:", - ":busts_in_silhouette:"), - - GITHUB181(1, 1, R.drawable.speech_balloon, ":speech_balloon:", - ":speech_balloon:"), - - GITHUB182(1, 1, R.drawable.thought_balloon, ":thought_balloon:", - ":thought_balloon:"), - - GITHUB183(1, 1, R.drawable.feelsgood, ":feelsgood:", ":feelsgood:"), - - GITHUB184(1, 1, R.drawable.finnadie, ":finnadie:", ":finnadie:"), - - GITHUB185(1, 1, R.drawable.goberserk, ":goberserk:", ":goberserk:"), - - GITHUB186(1, 1, R.drawable.godmode, ":godmode:", ":godmode:"), - - GITHUB187(1, 1, R.drawable.hurtrealbad, ":hurtrealbad:", ":hurtrealbad:"), - - GITHUB188(1, 1, R.drawable.rage1, ":rage1:", ":rage1:"), - - GITHUB189(1, 1, R.drawable.rage2, ":rage2:", ":rage2:"), - - GITHUB190(1, 1, R.drawable.rage3, ":rage3:", ":rage3:"), - - GITHUB191(1, 1, R.drawable.rage4, ":rage4:", ":rage4:"), - - GITHUB192(1, 1, R.drawable.suspect, ":suspect:", ":suspect:"), - - GITHUB193(1, 1, R.drawable.trollface, ":trollface:", ":trollface:"), - - Nature0(2, 1, R.drawable.sunny, ":sunny:", ":sunny:"), - - Nature1(2, 1, R.drawable.umbrella, ":umbrella:", ":umbrella:"), - - Nature2(2, 1, R.drawable.cloud, ":cloud:", ":cloud:"), - - Nature3(2, 1, R.drawable.snowflake, ":snowflake:", ":snowflake:"), - - Nature4(2, 1, R.drawable.snowman, ":snowman:", ":snowman:"), - - Nature5(2, 1, R.drawable.zap, ":zap:", ":zap:"), - - Nature6(2, 1, R.drawable.cyclone, ":cyclone:", ":cyclone:"), - - Nature7(2, 1, R.drawable.foggy, ":foggy:", ":foggy:"), - - Nature8(2, 1, R.drawable.ocean, ":ocean:", ":ocean:"), - - Nature9(2, 1, R.drawable.cat, ":cat:", ":cat:"), - - Nature10(2, 1, R.drawable.dog, ":dog:", ":dog:"), - - Nature11(2, 1, R.drawable.mouse, ":mouse:", ":mouse:"), - - Nature12(2, 1, R.drawable.hamster, ":hamster:", ":hamster:"), - - Nature13(2, 1, R.drawable.rabbit, ":rabbit:", ":rabbit:"), - - Nature14(2, 1, R.drawable.wolf, ":wolf:", ":wolf:"), - - Nature15(2, 1, R.drawable.frog, ":frog:", ":frog:"), - - Nature16(2, 1, R.drawable.tiger, ":tiger:", ":tiger:"), - - Nature17(2, 1, R.drawable.koala, ":koala:", ":koala:"), - - Nature18(2, 1, R.drawable.bear, ":bear:", ":bear:"), - - Nature19(2, 1, R.drawable.pig, ":pig:", ":pig:"), - - Nature20(2, 1, R.drawable.pig_nose, ":pig_nose:", ":pig_nose:"), - - Nature21(2, 1, R.drawable.cow, ":cow:", ":cow:"), - - Nature22(2, 1, R.drawable.boar, ":boar:", ":boar:"), - - Nature23(2, 1, R.drawable.monkey_face, ":monkey_face:", ":monkey_face:"), - - Nature24(2, 1, R.drawable.monkey, ":monkey:", ":monkey:"), - - Nature25(2, 1, R.drawable.horse, ":horse:", ":horse:"), - - Nature26(2, 1, R.drawable.racehorse, ":racehorse:", ":racehorse:"), - - Nature27(2, 1, R.drawable.camel, ":camel:", ":camel:"), - - Nature28(2, 1, R.drawable.sheep, ":sheep:", ":sheep:"), - - Nature29(2, 1, R.drawable.elephant, ":elephant:", ":elephant:"), - - Nature30(2, 1, R.drawable.panda_face, ":panda_face:", ":panda_face:"), - - Nature31(2, 1, R.drawable.snake, ":snake:", ":snake:"), - - Nature32(2, 1, R.drawable.bird, ":bird:", ":bird:"), - - Nature33(2, 1, R.drawable.baby_chick, ":baby_chick:", ":baby_chick:"), - - Nature34(2, 1, R.drawable.hatched_chick, ":hatched_chick:", - ":hatched_chick:"), - - Nature35(2, 1, R.drawable.hatching_chick, ":hatching_chick:", - ":hatching_chick:"), - - Nature36(2, 1, R.drawable.chicken, ":chicken:", ":chicken:"), - - Nature37(2, 1, R.drawable.penguin, ":penguin:", ":penguin:"), - - Nature38(2, 1, R.drawable.turtle, ":turtle:", ":turtle:"), - - Nature39(2, 1, R.drawable.bug, ":bug:", ":bug:"), - - Nature40(2, 1, R.drawable.honeybee, ":honeybee:", ":honeybee:"), - - Nature41(2, 1, R.drawable.ant, ":ant:", ":ant:"), - - Nature42(2, 1, R.drawable.beetle, ":beetle:", ":beetle:"), - - Nature43(2, 1, R.drawable.snail, ":snail:", ":snail:"), - - Nature44(2, 1, R.drawable.octopus, ":octopus:", ":octopus:"), - - Nature45(2, 1, R.drawable.tropical_fish, ":tropical_fish:", - ":tropical_fish:"), - - Nature46(2, 1, R.drawable.fish, ":fish:", ":fish:"), - - Nature47(2, 1, R.drawable.whale, ":whale:", ":whale:"), - - Nature48(2, 1, R.drawable.whale2, ":whale2:", ":whale2:"), - - Nature49(2, 1, R.drawable.dolphin, ":dolphin:", ":dolphin:"), - - Nature50(2, 1, R.drawable.cow2, ":cow2:", ":cow2:"), - - Nature51(2, 1, R.drawable.ram, ":ram:", ":ram:"), - - Nature52(2, 1, R.drawable.rat, ":rat:", ":rat:"), - - Nature53(2, 1, R.drawable.water_buffalo, ":water_buffalo:", - ":water_buffalo:"), - - Nature54(2, 1, R.drawable.tiger2, ":tiger2:", ":tiger2:"), - - Nature55(2, 1, R.drawable.rabbit2, ":rabbit2:", ":rabbit2:"), - - Nature56(2, 1, R.drawable.dragon, ":dragon:", ":dragon:"), - - Nature57(2, 1, R.drawable.goat, ":goat:", ":goat:"), - - Nature58(2, 1, R.drawable.rooster, ":rooster:", ":rooster:"), - - Nature59(2, 1, R.drawable.dog2, ":dog2:", ":dog2:"), - - Nature60(2, 1, R.drawable.pig2, ":pig2:", ":pig2:"), - - Nature61(2, 1, R.drawable.mouse2, ":mouse2:", ":mouse2:"), - - Nature62(2, 1, R.drawable.ox, ":ox:", ":ox:"), - - Nature63(2, 1, R.drawable.dragon_face, ":dragon_face:", ":dragon_face:"), - - Nature64(2, 1, R.drawable.blowfish, ":blowfish:", ":blowfish:"), - - Nature65(2, 1, R.drawable.crocodile, ":crocodile:", ":crocodile:"), - - Nature66(2, 1, R.drawable.dromedary_camel, ":dromedary_camel:", - ":dromedary_camel:"), - - Nature67(2, 1, R.drawable.leopard, ":leopard:", ":leopard:"), - - Nature68(2, 1, R.drawable.cat2, ":cat2:", ":cat2:"), - - Nature69(2, 1, R.drawable.poodle, ":poodle:", ":poodle:"), - - Nature70(2, 1, R.drawable.paw_prints, ":paw_prints:", ":paw_prints:"), - - Nature71(2, 1, R.drawable.bouquet, ":bouquet:", ":bouquet:"), - - Nature72(2, 1, R.drawable.cherry_blossom, ":cherry_blossom:", - ":cherry_blossom:"), - - Nature73(2, 1, R.drawable.tulip, ":tulip:", ":tulip:"), - - Nature74(2, 1, R.drawable.four_leaf_clover, ":four_leaf_clover:", - ":four_leaf_clover:"), - - Nature75(2, 1, R.drawable.rose, ":rose:", ":rose:"), - - Nature76(2, 1, R.drawable.sunflower, ":sunflower:", ":sunflower:"), - - Nature77(2, 1, R.drawable.hibiscus, ":hibiscus:", ":hibiscus:"), - - Nature78(2, 1, R.drawable.maple_leaf, ":maple_leaf:", ":maple_leaf:"), - - Nature79(2, 1, R.drawable.leaves, ":leaves:", ":leaves:"), - - Nature80(2, 1, R.drawable.fallen_leaf, ":fallen_leaf:", ":fallen_leaf:"), - - Nature81(2, 1, R.drawable.herb, ":herb:", ":herb:"), - - Nature82(2, 1, R.drawable.mushroom, ":mushroom:", ":mushroom:"), - - Nature83(2, 1, R.drawable.cactus, ":cactus:", ":cactus:"), - - Nature84(2, 1, R.drawable.palm_tree, ":palm_tree:", ":palm_tree:"), - - Nature85(2, 1, R.drawable.evergreen_tree, ":evergreen_tree:", - ":evergreen_tree:"), - - Nature86(2, 1, R.drawable.deciduous_tree, ":deciduous_tree:", - ":deciduous_tree:"), - - Nature87(2, 1, R.drawable.chestnut, ":chestnut:", ":chestnut:"), - - Nature88(2, 1, R.drawable.seedling, ":seedling:", ":seedling:"), - - Nature89(2, 1, R.drawable.blossom, ":blossom:", ":blossom:"), - - Nature90(2, 1, R.drawable.ear_of_rice, ":ear_of_rice:", ":ear_of_rice:"), - - Nature91(2, 1, R.drawable.shell, ":shell:", ":shell:"), - - Nature92(2, 1, R.drawable.globe_with_meridians, ":globe_with_meridians:", - ":globe_with_meridians:"), - - Nature93(2, 1, R.drawable.sun_with_face, ":sun_with_face:", - ":sun_with_face:"), - - Nature94(2, 1, R.drawable.full_moon_with_face, ":full_moon_with_face:", - ":full_moon_with_face:"), - - Nature95(2, 1, R.drawable.new_moon_with_face, ":new_moon_with_face:", - ":new_moon_with_face:"), - - Nature96(2, 1, R.drawable.new_moon, ":new_moon:", ":new_moon:"), - - Nature97(2, 1, R.drawable.waxing_crescent_moon, ":waxing_crescent_moon:", - ":waxing_crescent_moon:"), - - Nature98(2, 1, R.drawable.first_quarter_moon, ":first_quarter_moon:", - ":first_quarter_moon:"), - - Nature99(2, 1, R.drawable.waxing_gibbous_moon, ":waxing_gibbous_moon:", - ":waxing_gibbous_moon:"), - - Nature100(2, 1, R.drawable.full_moon, ":full_moon:", ":full_moon:"), - - Nature101(2, 1, R.drawable.waning_gibbous_moon, ":waning_gibbous_moon:", - ":waning_gibbous_moon:"), - - Nature102(2, 1, R.drawable.last_quarter_moon, ":last_quarter_moon:", - ":last_quarter_moon:"), - - Nature103(2, 1, R.drawable.waning_crescent_moon, ":waning_crescent_moon:", - ":waning_crescent_moon:"), - - Nature104(2, 1, R.drawable.last_quarter_moon_with_face, - ":last_quarter_moon_with_face:", ":last_quarter_moon_with_face:"), - - Nature105(2, 1, R.drawable.first_quarter_moon_with_face, - ":first_quarter_moon_with_face:", ":first_quarter_moon_with_face:"), - - Nature106(2, 1, R.drawable.moon, ":moon:", ":moon:"), - - Nature107(2, 1, R.drawable.earth_africa, ":earth_africa:", ":earth_africa:"), - - Nature108(2, 1, R.drawable.earth_americas, ":earth_americas:", - ":earth_americas:"), - - Nature109(2, 1, R.drawable.earth_asia, ":earth_asia:", ":earth_asia:"), - - Nature110(2, 1, R.drawable.volcano, ":volcano:", ":volcano:"), - - Nature111(2, 1, R.drawable.milky_way, ":milky_way:", ":milky_way:"), - - Nature112(2, 1, R.drawable.partly_sunny, ":partly_sunny:", ":partly_sunny:"), - - Nature113(2, 1, R.drawable.octocat, ":octocat:", ":octocat:"), - - Nature114(2, 1, R.drawable.squirrel, ":squirrel:", ":squirrel:"); - - /********************************* 操作 **************************************/ - private String emojiStr; - private String remote; - private int value; - private int resId; - private int type; - private static Map sEmojiMap; - - private DisplayRules(int type, int value, int resId, String cls, - String remote) { - this.type = type; - this.emojiStr = cls; - this.value = value; - this.resId = resId; - this.remote = remote; - } - - public String getRemote() { - return remote; - } - - public void setRemote(String remote) { - this.remote = remote; - } - - public String getEmojiStr() { - return emojiStr; - } - - public int getValue() { - return value; - } - - public int getResId() { - return resId; - } - - public int getType() { - return type; - } - - private static Emojicon getEmojiFromEnum(DisplayRules data) { - return new Emojicon(data.getResId(), data.getValue(), - data.getEmojiStr(), data.getRemote()); - } - - public static Emojicon getEmojiFromRes(int resId) { - for (DisplayRules data : values()) { - if (data.getResId() == resId) { - return getEmojiFromEnum(data); - } - } - return null; - } - - public static Emojicon getEmojiFromValue(int value) { - for (DisplayRules data : values()) { - if (data.getValue() == value) { - return getEmojiFromEnum(data); - } - } - return null; - } - - public static Emojicon getEmojiFromName(String emojiStr) { - for (DisplayRules data : values()) { - if (data.getEmojiStr().equals(emojiStr)) { - return getEmojiFromEnum(data); - } - } - return null; - } - - /** - * 提高效率,忽略线程安全 - */ - public static Map getMapAll() { - if (sEmojiMap == null) { - sEmojiMap = new HashMap(); - for (DisplayRules data : values()) { - sEmojiMap.put(data.getEmojiStr(), data.getResId()); - sEmojiMap.put(data.getRemote(), data.getResId()); - } - } - return sEmojiMap; - } - - public static List getAllByType(int type) { - List datas = new ArrayList(values().length); - for (DisplayRules data : values()) { - if (data.getType() == type) { - datas.add(getEmojiFromEnum(data)); - } - } - return datas; - } -} diff --git a/app/src/main/java/net/oschina/app/emoji/EmojiGridAdapter.java b/app/src/main/java/net/oschina/app/emoji/EmojiGridAdapter.java deleted file mode 100644 index eadf9717f..000000000 --- a/app/src/main/java/net/oschina/app/emoji/EmojiGridAdapter.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (c) 2015, 张涛. - * - * 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. - */ -package net.oschina.app.emoji; - -import java.util.ArrayList; -import java.util.List; - -import net.oschina.app.R; -import android.content.Context; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AbsListView.LayoutParams; -import android.widget.BaseAdapter; -import android.widget.ImageView; - -/** - * 表情适配器 - * - * @author kymjs (http://www.kymjs.com) - * - */ -public class EmojiGridAdapter extends BaseAdapter { - - private List datas; - private final Context cxt; - - public EmojiGridAdapter(Context cxt, List datas) { - this.cxt = cxt; - if (datas == null) { - datas = new ArrayList(0); - } - this.datas = datas; - } - - public void refresh(List datas) { - if (datas == null) { - datas = new ArrayList(0); - } - this.datas = datas; - notifyDataSetChanged(); - } - - @Override - public int getCount() { - return datas.size(); - } - - @Override - public Object getItem(int position) { - return datas.get(position); - } - - @Override - public long getItemId(int position) { - return 0; - } - - private static class ViewHolder { - ImageView image; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder holder = null; - if (convertView == null) { - holder = new ViewHolder(); - convertView = new ImageView(cxt); - int bound = (int) cxt.getResources().getDimension(R.dimen.space_49); - LayoutParams params = new LayoutParams(bound, bound); - convertView.setLayoutParams(params); - int padding = (int) cxt.getResources().getDimension( - R.dimen.space_10); - convertView.setPadding(padding, padding, padding, padding); - holder.image = (ImageView) convertView; - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - holder.image.setImageResource(datas.get(position).getResId()); - return convertView; - } -} diff --git a/app/src/main/java/net/oschina/app/emoji/EmojiKeyboardFragment.java b/app/src/main/java/net/oschina/app/emoji/EmojiKeyboardFragment.java deleted file mode 100644 index 00154dc16..000000000 --- a/app/src/main/java/net/oschina/app/emoji/EmojiKeyboardFragment.java +++ /dev/null @@ -1,163 +0,0 @@ -package net.oschina.app.emoji; - -import net.oschina.app.R; -import net.oschina.app.emoji.SoftKeyboardStateHelper.SoftKeyboardStateListener; -import android.content.Context; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.view.ViewPager; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.view.inputmethod.InputMethodManager; -import android.widget.EditText; -import android.widget.LinearLayout; -import android.widget.RadioGroup; - -public class EmojiKeyboardFragment extends Fragment implements - SoftKeyboardStateListener { - - private LinearLayout mEmojiContent; - private RadioGroup mEmojiBottom; - private View[] mEmojiTabs; - private ViewPager mEmojiPager; - - private EmojiPagerAdapter adapter; - - private LinearLayout mRootView; - private OnEmojiClickListener listener; - public static int EMOJI_TAB_CONTENT; - - private SoftKeyboardStateHelper mKeyboardHelper; - - @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - super.onCreateView(inflater, container, savedInstanceState); - mRootView = (LinearLayout) inflater.inflate(R.layout.frag_keyboard, - container, false); - initWidget(mRootView); - return mRootView; - } - - private void initWidget(View rootView) { - // bottom - mEmojiBottom = (RadioGroup) rootView.findViewById(R.id.emoji_bottom); - mEmojiBottom.setVisibility(View.VISIBLE); - EMOJI_TAB_CONTENT = mEmojiBottom.getChildCount() - 1; // 减一是因为有一个删除按钮 - mEmojiTabs = new View[EMOJI_TAB_CONTENT]; - if (EMOJI_TAB_CONTENT <= 1) { // 只有一个分类的时候就不显示了 - mEmojiBottom.setVisibility(View.GONE); - } - for (int i = 0; i < EMOJI_TAB_CONTENT; i++) { - mEmojiTabs[i] = mEmojiBottom.getChildAt(i); - mEmojiTabs[i].setOnClickListener(getBottomBarClickListener(i)); - } - mEmojiBottom.findViewById(R.id.emoji_bottom_del).setOnClickListener( - new OnClickListener() { - @Override - public void onClick(View v) { - if (listener != null) { - listener.onDeleteButtonClick(v); - } - } - }); - - // content必须放在bottom下面初始化 - mEmojiContent = (LinearLayout) rootView - .findViewById(R.id.emoji_content); - mEmojiPager = (ViewPager) mEmojiContent.findViewById(R.id.emoji_pager); - adapter = new EmojiPagerAdapter(getFragmentManager(), - EMOJI_TAB_CONTENT, listener); - mEmojiPager.setAdapter(adapter); - mEmojiContent.setVisibility(View.VISIBLE); - - mKeyboardHelper = new SoftKeyboardStateHelper(getActivity().getWindow() - .getDecorView()); - mKeyboardHelper.addSoftKeyboardStateListener(this); - } - - /** - * 底部栏点击事件监听器 - * - * @param indexfff - * @return - */ - private OnClickListener getBottomBarClickListener(final int index) { - return new OnClickListener() { - @Override - public void onClick(View v) { - mEmojiPager.setCurrentItem(index); - } - }; - } - - public void setOnEmojiClickListener(OnEmojiClickListener l) { - this.listener = l; - } - - public void hideAllKeyBoard() { - hideEmojiKeyBoard(); - hideSoftKeyboard(); - } - - public boolean isShow() { - return mEmojiContent.getVisibility() == View.VISIBLE; - } - - /** - * 隐藏Emoji并显示软键盘 - */ - public void hideEmojiKeyBoard() { - mEmojiBottom.setVisibility(View.GONE); - mEmojiContent.setVisibility(View.GONE); - } - - /** - * 显示Emoji并隐藏软键盘 - */ - public void showEmojiKeyBoard() { - mEmojiContent.setVisibility(View.VISIBLE); - if (EMOJI_TAB_CONTENT > 1) { - mEmojiBottom.setVisibility(View.VISIBLE); - } - } - - /** - * 隐藏软键盘 - */ - public void hideSoftKeyboard() { - ((InputMethodManager) getActivity().getSystemService( - Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow( - mEmojiBottom.getWindowToken(), 0); - } - - /** - * 显示软键盘 - */ - public void showSoftKeyboard(EditText et) { - ((InputMethodManager) getActivity().getSystemService( - Context.INPUT_METHOD_SERVICE)).showSoftInput(et, - InputMethodManager.SHOW_FORCED); - } - - /** - * 当软键盘显示时回调 - */ - @Override - public void onSoftKeyboardOpened(int keyboardHeightInPx) { - mEmojiBottom.setVisibility(View.GONE); - mEmojiContent.setVisibility(View.GONE); - } - - @Override - public void onSoftKeyboardClosed() {} - - @Override - public void onStop() { - super.onStop(); - hideSoftKeyboard(); - } -} diff --git a/app/src/main/java/net/oschina/app/emoji/EmojiPageFragment.java b/app/src/main/java/net/oschina/app/emoji/EmojiPageFragment.java deleted file mode 100644 index c15a2be69..000000000 --- a/app/src/main/java/net/oschina/app/emoji/EmojiPageFragment.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2015, 张涛. - * - * 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. - */ -package net.oschina.app.emoji; - -import android.annotation.SuppressLint; -import android.graphics.drawable.ColorDrawable; -import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.EditText; -import android.widget.GridView; - -import net.oschina.app.R; - -import java.util.ArrayList; -import java.util.List; - -/** - * 表情页,每页的显示 - * - * @author kymjs (http://www.kymjs.com) - * - */ -@SuppressLint("ValidFragment") -public class EmojiPageFragment extends Fragment { - private List datas; - private GridView sGrid; - private EmojiGridAdapter adapter; - private OnEmojiClickListener listener; - - public EmojiPageFragment(int index, int type, OnEmojiClickListener l) { - initData(index, type); - this.listener = l; - } - - private void initData(int index, int type) { - datas = new ArrayList(); - if (KJEmojiFragment.EMOJI_TAB_CONTENT > 1) { - datas = DisplayRules.getAllByType(type); - } else { - List dataAll = DisplayRules.getAllByType(type); - int max = Math.min((index + 1) * KJEmojiConfig.COUNT_IN_PAGE, - dataAll.size()); - for (int i = index * KJEmojiConfig.COUNT_IN_PAGE; i < max; i++) { - datas.add(dataAll.get(i)); - } - datas.add(new Emojicon(KJEmojiConfig.DELETE_EMOJI_ID, 1, "delete:", - "delete:")); - } - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - super.onCreateView(inflater, container, savedInstanceState); - sGrid = new GridView(getActivity()); - sGrid.setNumColumns(KJEmojiConfig.COLUMNS); - adapter = new EmojiGridAdapter(getActivity(), datas); - sGrid.setAdapter(adapter); - sGrid.setOnItemClickListener(new OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, - int position, long id) { - EditText editText = (EditText) getActivity().findViewById( - R.id.emoji_titile_input); - if (listener != null) { - listener.onEmojiClick((Emojicon) parent.getAdapter() - .getItem(position)); - } - InputHelper.input2OSC(editText, (Emojicon) parent.getAdapter() - .getItem(position)); - } - }); - sGrid.setSelector(new ColorDrawable(android.R.color.transparent)); - return sGrid; - } - - public GridView getRootView() { - return sGrid; - } -} diff --git a/app/src/main/java/net/oschina/app/emoji/EmojiPagerAdapter.java b/app/src/main/java/net/oschina/app/emoji/EmojiPagerAdapter.java deleted file mode 100644 index 636a01249..000000000 --- a/app/src/main/java/net/oschina/app/emoji/EmojiPagerAdapter.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2015, 张涛. - * - * 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. - */ -package net.oschina.app.emoji; - -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentPagerAdapter; - -/** - * 表情页适配器(FragmentPagerAdapter的好处是fragment常驻内存,对于要求效率而页卡很少的表情控件最合适) - * - * @author kymjs (http://www.kymjs.com) - * - */ -public class EmojiPagerAdapter extends FragmentPagerAdapter { - - private OnEmojiClickListener listener; - - public EmojiPagerAdapter(FragmentManager fm, int tabCount, - OnEmojiClickListener l) { - super(fm); - KJEmojiFragment.EMOJI_TAB_CONTENT = tabCount; - listener = l; - } - - public EmojiPagerAdapter(FragmentManager fm) { - super(fm); - } - - @Override - public EmojiPageFragment getItem(int index) { - if (KJEmojiFragment.EMOJI_TAB_CONTENT > 1) { - return new EmojiPageFragment(index, index, listener); - } else { - return new EmojiPageFragment(index, 0, listener); - } - } - - /** - * 显示模式:如果只有一种Emoji表情,则像QQ表情一样左右滑动分页显示
- * 如果有多种Emoji表情,每页显示一种,Emoji筛选时上下滑动筛选。 - */ - @Override - public int getCount() { - if (KJEmojiFragment.EMOJI_TAB_CONTENT > 1) { - return KJEmojiFragment.EMOJI_TAB_CONTENT; - } else { - // 采用进一法取小数 - return (DisplayRules.getAllByType(0).size() - 1 + KJEmojiConfig.COUNT_IN_PAGE) - / KJEmojiConfig.COUNT_IN_PAGE; - } - } -} diff --git a/app/src/main/java/net/oschina/app/emoji/Emojicon.java b/app/src/main/java/net/oschina/app/emoji/Emojicon.java deleted file mode 100644 index c82520ffa..000000000 --- a/app/src/main/java/net/oschina/app/emoji/Emojicon.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2015, 张涛. - * - * 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. - */ -package net.oschina.app.emoji; - -/** - * - * @author kymjs (http://www.kymjs.com) - */ -public class Emojicon { - private final int resId; // 图片资源地址 - private final int value; // 一个emoji对应唯一一个value - private final String emojiStr; // emoji在互联网传递的字符串 - private final String remote; - - public Emojicon(int id, int value, String name, String remote) { - this.resId = id; - this.value = value; - this.emojiStr = name; - this.remote = remote; - } - - public int getResId() { - return resId; - } - - public String getRemote() { - return remote; - } - - public int getValue() { - return value; - } - - public String getEmojiStr() { - return emojiStr; - } -} diff --git a/app/src/main/java/net/oschina/app/emoji/InputHelper.java b/app/src/main/java/net/oschina/app/emoji/InputHelper.java deleted file mode 100644 index 786c6fe24..000000000 --- a/app/src/main/java/net/oschina/app/emoji/InputHelper.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright (c) 2015, 张涛. - * - * 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. - */ -package net.oschina.app.emoji; - -import android.content.res.Resources; -import android.graphics.drawable.Drawable; -import android.text.Spannable; -import android.text.SpannableString; -import android.text.style.ImageSpan; -import android.view.KeyEvent; -import android.widget.EditText; - -import net.oschina.app.R; - -/** - * @author kymjs (http://www.kymjs.com) - */ -public class InputHelper { - public static void backspace(EditText editText) { - if (editText == null) { - return; - } - KeyEvent event = new KeyEvent(0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, - 0, KeyEvent.KEYCODE_ENDCALL); - editText.dispatchKeyEvent(event); - } - - /** - * 获取name对应的资源 - */ - public static int getEmojiResId(String name) { - Integer res = DisplayRules.getMapAll().get(name); - if (res != null) { - return res; - } else { - return -1; - } - } - - /** - * Support OSChina Client,due to the need to support both 2 Format
- * (I'm drunk, I go home) - */ - public static Spannable displayEmoji(Resources res, CharSequence s) { - String str = s.toString(); - Spannable spannable; - if (s instanceof Spannable) { - spannable = (Spannable) s; - } else { - // 构建文字span - spannable = new SpannableString(str); - } - if (!str.contains(":") && !str.contains("[")) { - return spannable; - } - - for (int i = 0; i < str.length(); i++) { - int index1 = str.indexOf("[", i); - int length1 = str.indexOf("]", index1 + 1); - int index2 = str.indexOf(":", i); - int length2 = str.indexOf(":", index2 + 1); - int bound = (int) res.getDimension(R.dimen.space_20); - - try { - if (index1 > 0) { - String emojiStr = str.substring(index1, length1 + "]".length()); - int resId = getEmojiResId(emojiStr); - if (resId > 0) { - // 构建图片span - Drawable drawable = res.getDrawable(resId); - - drawable.setBounds(0, 20, bound, bound + 20); - ImageSpan span = new ImageSpan(drawable, - ImageSpan.ALIGN_BASELINE); - spannable.setSpan(span, index1, length1 + "]".length(), - Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - } - } - if (index2 > 0) { - String emojiStr2 = str - .substring(index2, length2 + ":".length()); - int resId2 = getEmojiResId(emojiStr2); - if (resId2 > 0) { - Drawable emojiDrawable = res.getDrawable(resId2); - emojiDrawable.setBounds(0, 0, bound, bound); - // 构建图片span - ImageSpan imageSpan = new ImageSpan(emojiDrawable, str); - spannable.setSpan(imageSpan, index2, - length2 + ":".length(), - Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - } - } - } catch (Exception e) { - } - } - return spannable; - } - - public static void input2OSC(EditText editText, Emojicon emojicon) { - if (editText == null || emojicon == null) { - return; - } - int start = editText.getSelectionStart(); - int end = editText.getSelectionEnd(); - if (start < 0) { - // 没有多选时,直接在当前光标处添加 - editText.append(displayEmoji(editText.getResources(), - emojicon.getRemote())); - } else { - // 将已选中的部分替换为表情(当长按文字时会多选刷中很多文字) - Spannable str = displayEmoji(editText.getResources(), - emojicon.getRemote()); - editText.getText().replace(Math.min(start, end), - Math.max(start, end), str, 0, str.length()); - } - } -} diff --git a/app/src/main/java/net/oschina/app/emoji/JSViewPager.java b/app/src/main/java/net/oschina/app/emoji/JSViewPager.java deleted file mode 100644 index b394e137c..000000000 --- a/app/src/main/java/net/oschina/app/emoji/JSViewPager.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2015, 张涛. - * - * 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. - */ -package net.oschina.app.emoji; - -import android.content.Context; -import android.support.v4.view.ViewPager; -import android.util.AttributeSet; -import android.view.MotionEvent; - -/** - * 重写ViewPager触屏操作,修正了系统ViewPager与Activity触摸屏事件冲突 - * - * @author kymjs (http://www.kymjs.com) - * - */ -public class JSViewPager extends ViewPager { - - public JSViewPager(Context context) { - super(context); - } - - public JSViewPager(Context context, AttributeSet attrs) { - super(context, attrs); - } - - @Override - public boolean onTouchEvent(MotionEvent ev) { - super.onTouchEvent(ev); - return false; - } -} diff --git a/app/src/main/java/net/oschina/app/emoji/KJEmojiConfig.java b/app/src/main/java/net/oschina/app/emoji/KJEmojiConfig.java deleted file mode 100644 index 76b2abb42..000000000 --- a/app/src/main/java/net/oschina/app/emoji/KJEmojiConfig.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2015, 张涛. - * - * 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. - */ -package net.oschina.app.emoji; - -import net.oschina.app.R; - -/** - * - * @author kymjs (http://www.kymjs.com) - */ -public class KJEmojiConfig { - public static final String flag_Start = "["; - public static final String flag_End = "]"; - - public static final int COUNT_IN_PAGE = 20; // 每页显示多少个表情(要减去一个删除符号:例如这里是三行七列) - public static final int COLUMNS = 7; // 每页显示多少列 - - public static final int DELETE_EMOJI_ID = R.drawable.btn_del; -} diff --git a/app/src/main/java/net/oschina/app/emoji/KJEmojiFragment.java b/app/src/main/java/net/oschina/app/emoji/KJEmojiFragment.java deleted file mode 100644 index edfd26414..000000000 --- a/app/src/main/java/net/oschina/app/emoji/KJEmojiFragment.java +++ /dev/null @@ -1,269 +0,0 @@ -/* - * Copyright (c) 2015, 张涛. - * - * 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. - */ -package net.oschina.app.emoji; - -import android.content.Context; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.Fragment; -import android.support.v4.view.ViewPager; -import android.text.Editable; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.view.inputmethod.InputMethodManager; -import android.widget.CheckBox; -import android.widget.CompoundButton; -import android.widget.CompoundButton.OnCheckedChangeListener; -import android.widget.EditText; -import android.widget.LinearLayout; -import android.widget.RadioGroup; - -import net.oschina.app.R; -import net.oschina.app.emoji.SoftKeyboardStateHelper.SoftKeyboardStateListener; - -/** - * - * @author kymjs (http://www.kymjs.com) - * - */ -public class KJEmojiFragment extends Fragment implements - SoftKeyboardStateListener { - private LinearLayout mRootView; - - private View mEmojiTitle; - private LinearLayout mEmojiContent; - private RadioGroup mEmojiBottom; - private View[] mEmojiTabs; - - private EditText mEt; - private CheckBox mCBox; - private ViewPager mEmojiPager; - - private EmojiPagerAdapter adapter; - private OnSendClickListener listener; - public static int EMOJI_TAB_CONTENT; - - private SoftKeyboardStateHelper mKeyboardHelper; - - private CheckBox mCboxFlag; - - @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - super.onCreateView(inflater, container, savedInstanceState); - mRootView = (LinearLayout) inflater.inflate(R.layout.frag_main, - container, false); - initWidget(mRootView); - return mRootView; - } - - public LinearLayout getRootView() { - return mRootView; - } - - private void initWidget(View rootView) { - // title - mEmojiTitle = rootView.findViewById(R.id.emoji_title); - mCboxFlag = (CheckBox) mEmojiTitle.findViewById(R.id.emoji_title_flag); - mCboxFlag.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - if (listener != null) { - listener.onClickFlagButton(); - } - } - }); - - mEt = (EditText) mEmojiTitle.findViewById(R.id.emoji_titile_input); - mCBox = (CheckBox) mEmojiTitle.findViewById(R.id.emoji_title_menu); - mCBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, - boolean isChecked) { - if (isChecked) { - showEmojiKeyBoard(); - hideSoftKeyboard(); - } else { - showSoftKeyboard(); - } - } - }); - // bottom - mEmojiBottom = (RadioGroup) rootView.findViewById(R.id.emoji_bottom); - EMOJI_TAB_CONTENT = mEmojiBottom.getChildCount() - 1; // 减一是因为有一个删除按钮 - mEmojiTabs = new View[EMOJI_TAB_CONTENT]; - if (EMOJI_TAB_CONTENT <= 1) { // 只有一个分类的时候就不显示了 - mEmojiBottom.setVisibility(View.GONE); - } - for (int i = 0; i < EMOJI_TAB_CONTENT; i++) { - mEmojiTabs[i] = mEmojiBottom.getChildAt(i); - mEmojiTabs[i].setOnClickListener(getBottomBarClickListener(i)); - } - mEmojiBottom.findViewById(R.id.emoji_bottom_del).setOnClickListener( - new OnClickListener() { - @Override - public void onClick(View v) { - InputHelper.backspace(mEt); - } - }); - - // content必须放在bottom下面初始化 - mEmojiContent = (LinearLayout) rootView - .findViewById(R.id.emoji_content); - mEmojiPager = (ViewPager) mEmojiContent.findViewById(R.id.emoji_pager); - adapter = new EmojiPagerAdapter(getFragmentManager()); - mEmojiPager.setAdapter(adapter); - - mKeyboardHelper = new SoftKeyboardStateHelper(getActivity().getWindow() - .getDecorView()); - mKeyboardHelper.addSoftKeyboardStateListener(this); - if (getActivity() instanceof OnSendClickListener) { - listener = (OnSendClickListener) getActivity(); - } - if (listener != null) { - mEmojiTitle.findViewById(R.id.emoji_title_send).setOnClickListener( - new OnClickListener() { - @Override - public void onClick(View v) { - listener.onClickSendButton(mEt.getText()); - mEt.setHint("说点什么吧"); - hideAllKeyBoard(); - } - }); - } - } - - /** - * 底部栏点击事件监听器 - * - * @param index - * @return - */ - private OnClickListener getBottomBarClickListener(final int index) { - return new OnClickListener() { - @Override - public void onClick(View v) { - mEmojiPager.setCurrentItem(index); - } - }; - } - - public void setOnSendClickListener(OnSendClickListener l) { - this.listener = l; - } - - /******************************* preference *************************************/ - - public void clean() { - mEt.setText(null); - mEt.setTag(null); - } - - public void hideAllKeyBoard() { - hideEmojiKeyBoard(); - hideSoftKeyboard(); - } - - /** - * 隐藏Emoji并显示软键盘 - */ - public void hideEmojiKeyBoard() { - mEmojiBottom.setVisibility(View.GONE); - mEmojiContent.setVisibility(View.GONE); - mCBox.setChecked(false); - } - - /** - * 显示Emoji并隐藏软键盘 - */ - public void showEmojiKeyBoard() { - mEmojiContent.setVisibility(View.VISIBLE); - if (EMOJI_TAB_CONTENT > 1) { - mEmojiBottom.setVisibility(View.VISIBLE); - } - mCBox.setChecked(true); - } - - /** - * 隐藏软键盘 - */ - public void hideSoftKeyboard() { - ((InputMethodManager) getActivity().getSystemService( - Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow( - mEt.getWindowToken(), 0); - } - - /** - * 显示软键盘 - */ - public void showSoftKeyboard() { - mEt.requestFocus(); - ((InputMethodManager) getActivity().getSystemService( - Context.INPUT_METHOD_SERVICE)).showSoftInput(mEt, - InputMethodManager.SHOW_FORCED); - } - - public View getEmojiTitle() { - return mEmojiTitle; - } - - public Editable getTextString() { - return mEt.getText(); - } - - public EditText getEditText() { - return mEt; - } - - public boolean isShowEmojiKeyBoard() { - if (mCBox == null) { - return false; - } else { - return mCBox.isChecked(); - } - } - - /** - * 当软键盘显示时回调 - */ - @Override - public void onSoftKeyboardOpened(int keyboardHeightInPx) { - if (mEmojiBottom != null && mEmojiContent != null) { - mEmojiBottom.setVisibility(View.GONE); - mEmojiContent.setVisibility(View.GONE); - } - if (mCBox != null) { - mCBox.setChecked(false); - } - } - - public void hideFlagButton() { - if (mCboxFlag != null) { - mCboxFlag.setVisibility(View.GONE); - } - } - - @Override - public void onSoftKeyboardClosed() {} - - @Override - public void onStop() { - super.onStop(); - hideSoftKeyboard(); - } -} diff --git a/app/src/main/java/net/oschina/app/emoji/OnEmojiClickListener.java b/app/src/main/java/net/oschina/app/emoji/OnEmojiClickListener.java deleted file mode 100644 index 059cdfa0b..000000000 --- a/app/src/main/java/net/oschina/app/emoji/OnEmojiClickListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package net.oschina.app.emoji; - -import android.view.View; - -public interface OnEmojiClickListener { - void onDeleteButtonClick(View v); - - void onEmojiClick(Emojicon v); -} diff --git a/app/src/main/java/net/oschina/app/emoji/OnSendClickListener.java b/app/src/main/java/net/oschina/app/emoji/OnSendClickListener.java deleted file mode 100644 index 2cf1791fe..000000000 --- a/app/src/main/java/net/oschina/app/emoji/OnSendClickListener.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2015, 张涛. - * - * 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. - */ -package net.oschina.app.emoji; - -import android.text.Editable; - -/** - * - * @author kymjs (http://www.kymjs.com) - */ -public interface OnSendClickListener { - void onClickSendButton(Editable str); - - void onClickFlagButton(); -} diff --git a/app/src/main/java/net/oschina/app/emoji/ScrollGridView.java b/app/src/main/java/net/oschina/app/emoji/ScrollGridView.java deleted file mode 100644 index 30686db45..000000000 --- a/app/src/main/java/net/oschina/app/emoji/ScrollGridView.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2015, 张涛. - * - * 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. - */ -package net.oschina.app.emoji; - -import android.content.Context; -import android.util.AttributeSet; -import android.widget.GridView; - -/** - * - * @author kymjs (http://www.kymjs.com) - */ -public class ScrollGridView extends GridView { - - public ScrollGridView(Context context) { - super(context); - } - - public ScrollGridView(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public ScrollGridView(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - int height = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, - MeasureSpec.AT_MOST); - super.onMeasure(widthMeasureSpec, height); - } -} diff --git a/app/src/main/java/net/oschina/app/emoji/SoftKeyboardStateHelper.java b/app/src/main/java/net/oschina/app/emoji/SoftKeyboardStateHelper.java deleted file mode 100644 index 87dbf2cb7..000000000 --- a/app/src/main/java/net/oschina/app/emoji/SoftKeyboardStateHelper.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 2015, 张涛. - * - * 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. - */ -package net.oschina.app.emoji; - -import java.util.LinkedList; -import java.util.List; - -import android.graphics.Rect; -import android.view.View; -import android.view.ViewTreeObserver; - -/** - * - * @author kymjs (http://www.kymjs.com) - */ -public class SoftKeyboardStateHelper implements - ViewTreeObserver.OnGlobalLayoutListener { - - public interface SoftKeyboardStateListener { - void onSoftKeyboardOpened(int keyboardHeightInPx); - - void onSoftKeyboardClosed(); - } - - private final List listeners = new LinkedList(); - private final View activityRootView; - private int lastSoftKeyboardHeightInPx; - private boolean isSoftKeyboardOpened; - - public SoftKeyboardStateHelper(View activityRootView) { - this(activityRootView, false); - } - - public SoftKeyboardStateHelper(View activityRootView, - boolean isSoftKeyboardOpened) { - this.activityRootView = activityRootView; - this.isSoftKeyboardOpened = isSoftKeyboardOpened; - activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(this); - } - - @Override - public void onGlobalLayout() { - final Rect r = new Rect(); - // r will be populated with the coordinates of your view that area still - // visible. - activityRootView.getWindowVisibleDisplayFrame(r); - - final int heightDiff = activityRootView.getRootView().getHeight() - - (r.bottom - r.top); - if (!isSoftKeyboardOpened && heightDiff > 100) { // if more than 100 - // pixels, its probably - // a keyboard... - isSoftKeyboardOpened = true; - notifyOnSoftKeyboardOpened(heightDiff); - } else if (isSoftKeyboardOpened && heightDiff < 100) { - isSoftKeyboardOpened = false; - notifyOnSoftKeyboardClosed(); - } - } - - public void setIsSoftKeyboardOpened(boolean isSoftKeyboardOpened) { - this.isSoftKeyboardOpened = isSoftKeyboardOpened; - } - - public boolean isSoftKeyboardOpened() { - return isSoftKeyboardOpened; - } - - /** - * Default value is zero (0) - * - * @return last saved keyboard height in px - */ - public int getLastSoftKeyboardHeightInPx() { - return lastSoftKeyboardHeightInPx; - } - - public void addSoftKeyboardStateListener(SoftKeyboardStateListener listener) { - listeners.add(listener); - } - - public void removeSoftKeyboardStateListener( - SoftKeyboardStateListener listener) { - listeners.remove(listener); - } - - private void notifyOnSoftKeyboardOpened(int keyboardHeightInPx) { - this.lastSoftKeyboardHeightInPx = keyboardHeightInPx; - - for (SoftKeyboardStateListener listener : listeners) { - if (listener != null) { - listener.onSoftKeyboardOpened(keyboardHeightInPx); - } - } - } - - private void notifyOnSoftKeyboardClosed() { - for (SoftKeyboardStateListener listener : listeners) { - if (listener != null) { - listener.onSoftKeyboardClosed(); - } - } - } -} diff --git a/app/src/main/java/net/oschina/app/emoji/ToolbarFragment.java b/app/src/main/java/net/oschina/app/emoji/ToolbarFragment.java deleted file mode 100644 index cdf1b5d69..000000000 --- a/app/src/main/java/net/oschina/app/emoji/ToolbarFragment.java +++ /dev/null @@ -1,125 +0,0 @@ -package net.oschina.app.emoji; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.base.BaseFragment; - -public class ToolbarFragment extends BaseFragment { - - public interface OnActionClickListener { - public void onActionClick(ToolAction action); - } - - public enum ToolAction { - ACTION_CHANGE, ACTION_WRITE_COMMENT, ACTION_VIEW_COMMENT, ACTION_FAVORITE, ACTION_SHARE, ACTION_REPORT - } - - private OnActionClickListener mActionListener; - - private View mActionWriteComment, mActionViewComment, mActionFavorite, - mActionReport, mActionShare; - - private View mIvFavorite; - private boolean mFavorite; - - private int mCommentCount; - - private TextView mTvCommentCount; - - private View mRootView; - - @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - mRootView = inflater.inflate(R.layout.fragment_detail_tool_bar, - container, false); - initView(mRootView); - return mRootView; - } - - public View getRootView() { - return mRootView; - } - - @Override - public void initView(View view) { - view.findViewById(R.id.btn_change).setOnClickListener(this); - mActionWriteComment = view.findViewById(R.id.write_comment_layout); - mActionWriteComment.setOnClickListener(this); - - mActionFavorite = view.findViewById(R.id.favor_layout); - mActionFavorite.setOnClickListener(this); - - mActionViewComment = view.findViewById(R.id.view_comment_layout); - mActionViewComment.setOnClickListener(this); - - mActionShare = view.findViewById(R.id.repost_layout); - mActionShare.setOnClickListener(this); - - mActionReport = view.findViewById(R.id.report_layout); - mActionReport.setOnClickListener(this); - - mIvFavorite = view.findViewById(R.id.action_favor); - mIvFavorite.setSelected(mFavorite); - - mTvCommentCount = (TextView) view - .findViewById(R.id.action_comment_count); - mTvCommentCount.setText(String.valueOf(mCommentCount)); - - } - - @Override - public void onClick(View v) { - final int id = v.getId(); - ToolAction action = null; - if (id == R.id.btn_change) { - action = ToolAction.ACTION_CHANGE; - } else if (id == R.id.write_comment_layout) { - action = ToolAction.ACTION_WRITE_COMMENT; - } else if (id == R.id.view_comment_layout) { - action = ToolAction.ACTION_VIEW_COMMENT; - } else if (id == R.id.repost_layout) { - action = ToolAction.ACTION_SHARE; - } else if (id == R.id.report_layout) { - action = ToolAction.ACTION_REPORT; - } else if (id == R.id.favor_layout) { - action = ToolAction.ACTION_FAVORITE; - } - if (action != null && mActionListener != null) { - mActionListener.onActionClick(action); - } - } - - public void setOnActionClickListener(OnActionClickListener lis) { - mActionListener = lis; - } - - public void setCommentCount(int count) { - mCommentCount = count; - if (mTvCommentCount != null) { - mTvCommentCount.setText(String.valueOf(mCommentCount)); - mTvCommentCount.setVisibility(mCommentCount > 0 ? View.VISIBLE - : View.GONE); - } - } - - public void setFavorite(boolean favorite) { - mFavorite = favorite; - if (mIvFavorite != null) { - mIvFavorite.setSelected(favorite); - } - } - - public void showReportButton() { - mActionReport.setVisibility(View.VISIBLE); - } - - @Override - public void initData() {} -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/fragment/AboutOSCFragment.java b/app/src/main/java/net/oschina/app/fragment/AboutOSCFragment.java deleted file mode 100644 index 892465ce3..000000000 --- a/app/src/main/java/net/oschina/app/fragment/AboutOSCFragment.java +++ /dev/null @@ -1,98 +0,0 @@ -package net.oschina.app.fragment; - -import net.oschina.app.R; -import net.oschina.app.base.BaseFragment; -import net.oschina.app.bean.SimpleBackPage; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.UpdateManager; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -public class AboutOSCFragment extends BaseFragment { - - @InjectView(R.id.tv_version) - TextView mTvVersionStatus; - - @InjectView(R.id.tv_version_name) - TextView mTvVersionName; - - @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_about, container, false); - ButterKnife.inject(this, view); - initView(view); - initData(); - return view; - } - - @Override - public void initView(View view) { - view.findViewById(R.id.rl_check_update).setOnClickListener(this); - view.findViewById(R.id.rl_feedback).setOnClickListener(this); - view.findViewById(R.id.rl_grade).setOnClickListener(this); - view.findViewById(R.id.rl_gitapp).setOnClickListener(this); - view.findViewById(R.id.tv_oscsite).setOnClickListener(this); - view.findViewById(R.id.tv_knowmore).setOnClickListener(this); - } - - @Override - public void initData() { - mTvVersionName.setText("V " + TDevice.getVersionName()); - } - - @Override - public void onClick(View v) { - final int id = v.getId(); - switch (id) { - case R.id.rl_check_update: - onClickUpdate(); - break; - case R.id.rl_feedback: - showFeedBack(); - break; - case R.id.rl_grade: - TDevice.openAppInMarket(getActivity()); - break; - case R.id.rl_gitapp: - boolean res = TDevice.openAppActivity(getActivity(), - "net.oschina.gitapp", "net.oschina.gitapp.WelcomePage"); - - if (!res) { - if (!TDevice.isHaveMarket(getActivity())) { - UIHelper.openSysBrowser(getActivity(), - "http://git.oschina.net/appclient"); - } else { - TDevice.gotoMarket(getActivity(), "net.oschina.gitapp"); - } - } - break; - case R.id.tv_oscsite: - UIHelper.openBrowser(getActivity(), "https://www.oschina.net"); - break; - case R.id.tv_knowmore: - UIHelper.openBrowser(getActivity(), - "https://www.oschina.net/home/aboutosc"); - break; - default: - break; - } - } - - private void onClickUpdate() { - new UpdateManager(getActivity(), true).checkUpdate(); - } - - private void showFeedBack() { - // TDevice.sendEmail(getActivity(), "用户反馈-OSC Android客户端", "", - // "apposchina@163.com"); - UIHelper.showSimpleBack(getActivity(), SimpleBackPage.FEED_BACK); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/ActiveFragment.java b/app/src/main/java/net/oschina/app/fragment/ActiveFragment.java deleted file mode 100644 index 5657fc4b3..000000000 --- a/app/src/main/java/net/oschina/app/fragment/ActiveFragment.java +++ /dev/null @@ -1,212 +0,0 @@ -package net.oschina.app.fragment; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemLongClickListener; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.adapter.ActiveAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Active; -import net.oschina.app.bean.ActiveList; -import net.oschina.app.bean.Constants; -import net.oschina.app.bean.Notice; -import net.oschina.app.service.NoticeUtils; -import net.oschina.app.ui.MainActivity; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.HTMLUtil; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import net.oschina.app.viewpagerfragment.NoticeViewPagerFragment; - -import java.io.InputStream; -import java.io.Serializable; - -/** - * 动态fragment - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @author kymjs (https://github.com/kymjs) - * @created 2014年10月22日 下午3:35:43 - * - */ -public class ActiveFragment extends BaseListFragment implements - OnItemLongClickListener { - - protected static final String TAG = ActiveFragment.class.getSimpleName(); - private static final String CACHE_KEY_PREFIX = "active_list"; - private boolean mIsWatingLogin; // 还没登陆 - - private final BroadcastReceiver mReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (mErrorLayout != null) { - mIsWatingLogin = true; - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - mErrorLayout.setErrorMessage(getString(R.string.unlogin_tip)); - } - } - }; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - IntentFilter filter = new IntentFilter(Constants.INTENT_ACTION_LOGOUT); - getActivity().registerReceiver(mReceiver, filter); - } - - @Override - public void onDestroy() { - getActivity().unregisterReceiver(mReceiver); - super.onDestroy(); - } - - @Override - public void onResume() { - if (mIsWatingLogin) { - mCurrentPage = 0; - mState = STATE_REFRESH; - requestData(false); - } - refreshNotice(); - super.onResume(); - } - - /** - * 开始刷新请求 - */ - private void refreshNotice() { - Notice notice = MainActivity.mNotice; - if (notice == null) { - return; - } - if (notice.getAtmeCount() > 0 && mCatalog == ActiveList.CATALOG_ATME) { - onRefresh(); - } else if (notice.getReviewCount() > 0 - && mCatalog == ActiveList.CATALOG_COMMENT) { - onRefresh(); - } - } - - @Override - protected ActiveAdapter getListAdapter() { - return new ActiveAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return new StringBuffer(CACHE_KEY_PREFIX + mCatalog).append( - AppContext.getInstance().getLoginUid()).toString(); - } - - @Override - protected ActiveList parseList(InputStream is) { - ActiveList list = XmlUtils.toBean(ActiveList.class, is); - return list; - } - - @Override - protected ActiveList readList(Serializable seri) { - return ((ActiveList) seri); - } - - @Override - public void initView(View view) { - if (mCatalog == ActiveList.CATALOG_LASTEST) { - setHasOptionsMenu(true); - } - super.initView(view); - mListView.setOnItemLongClickListener(this); - mListView.setOnItemClickListener(this); - mErrorLayout.setOnLayoutClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (AppContext.getInstance().isLogin()) { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - requestData(false); - } else { - UIHelper.showLoginActivity(getActivity()); - } - } - }); - if (AppContext.getInstance().isLogin()) { - UIHelper.sendBroadcastForNotice(getActivity()); - } - } - - @Override - protected void requestData(boolean refresh) { - if (AppContext.getInstance().isLogin()) { - mIsWatingLogin = false; - super.requestData(refresh); - } else { - mIsWatingLogin = true; - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - mErrorLayout.setErrorMessage(getString(R.string.unlogin_tip)); - } - } - - @Override - protected void sendRequestData() { - OSChinaApi.getActiveList(AppContext.getInstance().getLoginUid(), - mCatalog, mCurrentPage, mHandler); - } - - @Override - protected void onRefreshNetworkSuccess() { - if (AppContext.getInstance().isLogin()) { - if (0 == NoticeViewPagerFragment.sCurrentPage) { - NoticeUtils.clearNotice(Notice.TYPE_ATME); - } else if (1 == NoticeViewPagerFragment.sCurrentPage - || NoticeViewPagerFragment.sShowCount[1] > 0) { // 如果当前显示的是评论页,则发送评论页已被查看的Http请求 - NoticeUtils.clearNotice(Notice.TYPE_COMMENT); - } else { - NoticeUtils.clearNotice(Notice.TYPE_ATME); - } - UIHelper.sendBroadcastForNotice(getActivity()); - } - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - Active active = mAdapter.getItem(position); - if (active != null) - UIHelper.showActiveRedirect(view.getContext(), active); - } - - @Override - public boolean onItemLongClick(AdapterView parent, View view, - int position, long id) { - final Active active = mAdapter.getItem(position); - if (active == null) - return false; - String[] items = new String[] { getResources().getString(R.string.copy) }; - DialogHelp.getSelectDialog(getActivity(), items, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - TDevice.copyTextToBoard(HTMLUtil.delHTMLTag(active.getMessage())); - } - }).show(); - return true; - } - - @Override - protected long getAutoRefreshTime() { - // 最新动态,即是好友圈 - if (mCatalog == ActiveList.CATALOG_LASTEST) { - return 5 * 60; - } - return super.getAutoRefreshTime(); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/BlogDetailFragment.java b/app/src/main/java/net/oschina/app/fragment/BlogDetailFragment.java deleted file mode 100644 index 49a31ac27..000000000 --- a/app/src/main/java/net/oschina/app/fragment/BlogDetailFragment.java +++ /dev/null @@ -1,133 +0,0 @@ -package net.oschina.app.fragment; - -import android.text.Editable; -import android.text.TextUtils; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.CommonDetailFragment; -import net.oschina.app.bean.Blog; -import net.oschina.app.bean.BlogDetail; -import net.oschina.app.bean.CommentList; -import net.oschina.app.bean.FavoriteList; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.ThemeSwitchUtils; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.URLsUtils; -import net.oschina.app.util.XmlUtils; - -import java.io.InputStream; - -/** - * Created by 火蚁 on 15/5/25. - */ -public class BlogDetailFragment extends CommonDetailFragment { - @Override - protected String getCacheKey() { - return "blog_" + mId; - } - - @Override - protected void sendRequestDataForNet() { - OSChinaApi.getBlogDetail(mId, mDetailHeandler); - } - - @Override - protected Blog parseData(InputStream is) { - return XmlUtils.toBean(BlogDetail.class, is).getBlog(); - } - - @Override - protected String getWebViewBody(Blog detail) { - StringBuffer body = new StringBuffer(); - body.append(UIHelper.WEB_STYLE).append(UIHelper.WEB_LOAD_IMAGES); - body.append(ThemeSwitchUtils.getWebViewBodyString()); - // 添加title - body.append(String.format("

%s
", mDetail.getTitle())); - // 添加作者和时间 - String time = StringUtils.friendly_time(mDetail.getPubDate()); - String author = String.format("%s", mDetail.getAuthorId(), mDetail.getAuthor()); - body.append(String.format("
%s    %s
", author, time)); - // 添加图片点击放大支持 - body.append(UIHelper.setHtmlCotentSupportImagePreview(mDetail.getBody())); - // 封尾 - body.append(""); - return body.toString(); - } - - @Override - protected void showCommentView() { - if (mDetail != null) { - UIHelper.showBlogComment(getActivity(), mId, - mDetail.getAuthorId()); - } - } - - @Override - protected int getCommentType() { - return CommentList.CATALOG_MESSAGE; - } - - @Override - protected String getShareTitle() { - return mDetail.getTitle(); - } - - @Override - protected String getShareContent() { - return StringUtils.getSubString(0, 55, - getFilterHtmlBody(mDetail.getBody())); - } - - @Override - protected String getShareUrl() { - return String.format(URLsUtils.URL_MOBILE + "blog/%s", mId); - } - - @Override - protected int getFavoriteTargetType() { - return FavoriteList.TYPE_BLOG; - } - - @Override - protected int getFavoriteState() { - return mDetail.getFavorite(); - } - - @Override - protected void updateFavoriteChanged(int newFavoritedState) { - mDetail.setFavorite(newFavoritedState); - saveCache(mDetail); - } - - @Override - protected int getCommentCount() { - return mDetail.getCommentCount(); - } - - @Override - public void onClickSendButton(Editable str) { - if (!TDevice.hasInternet()) { - AppContext.showToastShort(R.string.tip_network_error); - return; - } - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - if (TextUtils.isEmpty(str)) { - AppContext.showToastShort(R.string.tip_comment_content_empty); - return; - } - showWaitDialog(R.string.progress_submit); - OSChinaApi.publicBlogComment(mId, AppContext.getInstance() - .getLoginUid(), str.toString(), mCommentHandler); - } - - @Override - protected String getRepotrUrl() { - return mDetail.getUrl(); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/BlogFragment.java b/app/src/main/java/net/oschina/app/fragment/BlogFragment.java deleted file mode 100644 index ebd209f74..000000000 --- a/app/src/main/java/net/oschina/app/fragment/BlogFragment.java +++ /dev/null @@ -1,98 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; - -import net.oschina.app.adapter.BlogAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Blog; -import net.oschina.app.bean.BlogList; -import net.oschina.app.interf.OnTabReselectListener; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; - -/** - * 博客区中单一模块的展示 - * - * @author kymjs(kymjs123@gmail.com) - */ -public class BlogFragment extends BaseListFragment implements - OnTabReselectListener { - - public static final String BUNDLE_BLOG_TYPE = "BUNDLE_BLOG_TYPE"; - - protected static final String TAG = BlogFragment.class.getSimpleName(); - private static final String CACHE_KEY_PREFIX = "bloglist_"; - - private String blogType; - - @Override - protected BlogAdapter getListAdapter() { - return new BlogAdapter(); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Bundle args = getArguments(); - if (args != null) { - blogType = args.getString(BUNDLE_BLOG_TYPE); - } - } - - /** - * 获取当前展示页面的缓存数据 - */ - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX + blogType; - } - - @Override - protected BlogList parseList(InputStream is) throws Exception { - BlogList list = XmlUtils.toBean(BlogList.class, is); - return list; - } - - @Override - protected BlogList readList(Serializable seri) { - return ((BlogList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getBlogList(blogType, mCurrentPage, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - Blog blog = mAdapter.getItem(position); - if (blog != null) { - UIHelper.showBlogDetail(getActivity(), blog.getId(), - blog.getCommentCount()); - // 保存到已读列表 - saveToReadedList(view, BlogList.PREF_READED_BLOG_LIST, blog.getId() - + ""); - } - } - - @Override - public void onTabReselect() { - onRefresh(); - } - - @Override - protected long getAutoRefreshTime() { - // TODO Auto-generated method stub - // 最新博客 - if (blogType.equals(BlogList.CATALOG_LATEST)) { - return 2 * 60 * 60; - } - return super.getAutoRefreshTime(); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/BrowserFragment.java b/app/src/main/java/net/oschina/app/fragment/BrowserFragment.java deleted file mode 100644 index 4fe858e6f..000000000 --- a/app/src/main/java/net/oschina/app/fragment/BrowserFragment.java +++ /dev/null @@ -1,355 +0,0 @@ -package net.oschina.app.fragment; - -import android.annotation.SuppressLint; -import android.app.Activity; -import android.content.Intent; -import android.graphics.Bitmap; -import android.net.Uri; -import android.os.Bundle; -import android.view.GestureDetector; -import android.view.GestureDetector.SimpleOnGestureListener; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.MotionEvent; -import android.view.View; -import android.view.View.OnTouchListener; -import android.view.ViewGroup; -import android.view.animation.Animation; -import android.view.animation.Animation.AnimationListener; -import android.view.animation.AnimationUtils; -import android.webkit.CookieManager; -import android.webkit.WebChromeClient; -import android.webkit.WebSettings; -import android.webkit.WebSettings.PluginState; -import android.webkit.WebView; -import android.webkit.WebViewClient; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.ProgressBar; - -import net.oschina.app.AppConfig; -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.base.BaseActivity; -import net.oschina.app.base.BaseFragment; -import net.oschina.app.ui.ShareDialog; -import net.oschina.app.ui.SimpleBackActivity; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 浏览器界面 - * - * @author kymjs(kymjs123@gmail.com) - */ -@SuppressLint("NewApi") -public class BrowserFragment extends BaseFragment { - @InjectView(R.id.webview) - WebView mWebView; - @InjectView(R.id.browser_back) - ImageView mImgBack; - @InjectView(R.id.browser_forward) - ImageView mImgForward; - @InjectView(R.id.browser_refresh) - ImageView mImgRefresh; - @InjectView(R.id.browser_system_browser) - ImageView mImgSystemBrowser; - @InjectView(R.id.browser_bottom) - LinearLayout mLayoutBottom; - @InjectView(R.id.progress) - ProgressBar mProgress; - - public static final String BROWSER_KEY = "browser_url"; - public static final String DEFAULT = "http://www.oschina.net/"; - - private int TAG = 1; // 双击事件需要 - private Activity aty; - private String mCurrentUrl = DEFAULT; - - private Animation animBottomIn, animBottomOut; - private GestureDetector mGestureDetector; - private CookieManager cookie; - - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.browser_back: - mWebView.goBack(); - break; - case R.id.browser_forward: - mWebView.goForward(); - break; - case R.id.browser_refresh: - mWebView.loadUrl(mWebView.getUrl()); - break; - case R.id.browser_system_browser: - try { - // 启用外部浏览器 - Uri uri = Uri.parse(mCurrentUrl); - Intent it = new Intent(Intent.ACTION_VIEW, uri); - aty.startActivity(it); - } catch (Exception e) { - AppContext.showToast("网页地址错误"); - } - break; - } - } - - @Override - public void initView(View view) { - initWebView(); - initBarAnim(); - mImgBack.setOnClickListener(this); - mImgForward.setOnClickListener(this); - mImgRefresh.setOnClickListener(this); - mImgSystemBrowser.setOnClickListener(this); - - mGestureDetector = new GestureDetector(aty, new MyGestureListener()); - mWebView.loadUrl(mCurrentUrl); - mWebView.setOnTouchListener(new OnTouchListener() { - @Override - public boolean onTouch(View v, MotionEvent event) { - return mGestureDetector.onTouchEvent(event); - } - }); - } - - @Override - public void onResume() { - super.onResume(); - mWebView.onResume(); - } - - @Override - public void onPause() { - super.onPause(); - mWebView.onPause(); - } - - @Override - public void onDestroy() { - super.onDestroy(); - mWebView.destroy(); - } - - @Override - public void initData() { - Bundle bundle = getActivity().getIntent().getBundleExtra( - SimpleBackActivity.BUNDLE_KEY_ARGS); - if (bundle != null) { - mCurrentUrl = bundle.getString(BROWSER_KEY); - } - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - super.onCreateView(inflater, container, savedInstanceState); - View rootView = inflater.inflate(R.layout.fragment_browser, container, - false); - aty = getActivity(); - ButterKnife.inject(this, rootView); - initData(); - initView(rootView); - return rootView; - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setHasOptionsMenu(true); - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.browser_menu, menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.public_menu_shared: - showSharedDialog(); - break; - } - return true; - } - - /** - * 初始化上下栏的动画并设置结束监听事件 - */ - private void initBarAnim() { - animBottomIn = AnimationUtils.loadAnimation(aty, R.anim.anim_bottom_in); - animBottomOut = AnimationUtils.loadAnimation(aty, - R.anim.anim_bottom_out); - animBottomIn.setAnimationListener(new AnimationListener() { - @Override - public void onAnimationStart(Animation animation) {} - - @Override - public void onAnimationRepeat(Animation animation) {} - - @Override - public void onAnimationEnd(Animation animation) { - mLayoutBottom.setVisibility(View.VISIBLE); - } - }); - animBottomOut.setAnimationListener(new AnimationListener() { - @Override - public void onAnimationStart(Animation animation) {} - - @Override - public void onAnimationRepeat(Animation animation) {} - - @Override - public void onAnimationEnd(Animation animation) { - mLayoutBottom.setVisibility(View.GONE); - } - }); - } - - /** - * 打开分享dialog - */ - private void showSharedDialog() { - final ShareDialog dialog = new ShareDialog(getActivity()); - dialog.setCancelable(true); - dialog.setCanceledOnTouchOutside(true); - dialog.setTitle(R.string.share_to); - dialog.setShareInfo(getShareTitle(), getShareContent(), mCurrentUrl); - dialog.show(); - } - - /** - * 载入链接之前会被调用 - * - * @param view - * WebView - * @param url - * 链接地址 - */ - protected void onUrlLoading(WebView view, String url) { - mProgress.setVisibility(View.VISIBLE); - cookie.setCookie(url, - AppContext.getInstance().getProperty(AppConfig.CONF_COOKIE)); - } - - /** - * 链接载入成功后会被调用 - * - * @param view - * WebView - * @param url - * 链接地址 - */ - protected void onUrlFinished(WebView view, String url) { - mCurrentUrl = url; - mProgress.setVisibility(View.GONE); - } - - /** - * 当前WebView显示页面的标题 - * - * @param view - * WebView - * @param title - * web页面标题 - */ - protected void onWebTitle(WebView view, String title) { - if (aty != null && mWebView != null) { // 必须做判断,由于webview加载属于耗时操作,可能会本Activity已经关闭了才被调用 - ((BaseActivity) aty).setActionBarTitle(mWebView.getTitle()); - } - } - - /** - * 当前WebView显示页面的图标 - * - * @param view - * WebView - * @param icon - * web页面图标 - */ - protected void onWebIcon(WebView view, Bitmap icon) {} - - /** - * 初始化浏览器设置信息 - */ - private void initWebView() { - cookie = CookieManager.getInstance(); - WebSettings webSettings = mWebView.getSettings(); - webSettings.setJavaScriptEnabled(true); // 启用支持javascript - webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);// 优先使用缓存 - webSettings.setAllowFileAccess(true);// 可以访问文件 - webSettings.setBuiltInZoomControls(true);// 支持缩放 - if (android.os.Build.VERSION.SDK_INT >= 11) { - webSettings.setPluginState(PluginState.ON); - webSettings.setDisplayZoomControls(false);// 支持缩放 - } - mWebView.setWebViewClient(new MyWebViewClient()); - mWebView.setWebChromeClient(new MyWebChromeClient()); - } - - private class MyWebChromeClient extends WebChromeClient { - @Override - public void onReceivedTitle(WebView view, String title) { - super.onReceivedTitle(view, title); - onWebTitle(view, title); - } - - @Override - public void onReceivedIcon(WebView view, Bitmap icon) { - super.onReceivedIcon(view, icon); - onWebIcon(view, icon); - } - - @Override - public void onProgressChanged(WebView view, int newProgress) { // 进度 - super.onProgressChanged(view, newProgress); - if (newProgress > 90) { - mProgress.setVisibility(View.GONE); - } - } - } - - private class MyWebViewClient extends WebViewClient { - @Override - public boolean shouldOverrideUrlLoading(WebView view, String url) { - onUrlLoading(view, url); - boolean flag = super.shouldOverrideUrlLoading(view, url); - mCurrentUrl = url; - return flag; - } - - @Override - public void onPageFinished(WebView view, String url) { - super.onPageFinished(view, url); - onUrlFinished(view, url); - } - } - - private class MyGestureListener extends SimpleOnGestureListener { - - @Override - public boolean onDoubleTap(MotionEvent e) {// webview的双击事件 - if (TAG % 2 == 0) { - TAG++; - mLayoutBottom.startAnimation(animBottomIn); - } else { - TAG++; - mLayoutBottom.startAnimation(animBottomOut); - } - return super.onDoubleTap(e); - } - } - - private String getShareTitle() { - return mWebView.getTitle(); - } - - private String getShareContent() { - return mWebView.getTitle(); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/CommentFrament.java b/app/src/main/java/net/oschina/app/fragment/CommentFrament.java deleted file mode 100644 index 1667c7196..000000000 --- a/app/src/main/java/net/oschina/app/fragment/CommentFrament.java +++ /dev/null @@ -1,337 +0,0 @@ -package net.oschina.app.fragment; - -import android.app.Activity; -import android.content.DialogInterface; -import android.content.Intent; -import android.os.Bundle; -import android.text.Editable; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.WindowManager; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemLongClickListener; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.adapter.CommentAdapter; -import net.oschina.app.api.OperationResponseHandler; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseActivity; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.BlogCommentList; -import net.oschina.app.bean.Comment; -import net.oschina.app.bean.CommentList; -import net.oschina.app.bean.ListEntity; -import net.oschina.app.bean.Result; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.emoji.OnSendClickListener; -import net.oschina.app.ui.DetailActivity; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.HTMLUtil; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; - -import cz.msebera.android.httpclient.Header; -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.io.Serializable; - -public class CommentFrament extends BaseListFragment implements - OnItemLongClickListener, OnSendClickListener { - - public static final String BUNDLE_KEY_CATALOG = "BUNDLE_KEY_CATALOG"; - public static final String BUNDLE_KEY_BLOG = "BUNDLE_KEY_BLOG"; - public static final String BUNDLE_KEY_ID = "BUNDLE_KEY_ID"; - public static final String BUNDLE_KEY_OWNER_ID = "BUNDLE_KEY_OWNER_ID"; - protected static final String TAG = CommentFrament.class.getSimpleName(); - private static final String BLOG_CACHE_KEY_PREFIX = "blogcomment_list"; - private static final String CACHE_KEY_PREFIX = "comment_list"; - private static final int REQUEST_CODE = 0x10; - - private int mId, mOwnerId; - private boolean mIsBlogComment; - private DetailActivity outAty; - - private final AsyncHttpResponseHandler mCommentHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - ResultBean rsb = XmlUtils.toBean(ResultBean.class, - new ByteArrayInputStream(arg2)); - Result res = rsb.getResult(); - if (res.OK()) { - hideWaitDialog(); - AppContext.showToastShort(R.string.comment_publish_success); - - mAdapter.addItem(0, rsb.getComment()); - mAdapter.notifyDataSetChanged(); - UIHelper.sendBroadCastCommentChanged(getActivity(), - mIsBlogComment, mId, mCatalog, Comment.OPT_ADD, - rsb.getComment()); - onRefresh(); - outAty.emojiFragment.clean(); - } else { - hideWaitDialog(); - AppContext.showToastShort(res.getErrorMessage()); - } - } catch (Exception e) { - e.printStackTrace(); - onFailure(arg0, arg1, arg2, e); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - hideWaitDialog(); - AppContext.showToastShort(R.string.comment_publish_faile); - } - }; - - @Override - public void initView(View view) { - super.initView(view); - mListView.setOnItemLongClickListener(this); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - outAty = (DetailActivity) getActivity(); - return super.onCreateView(inflater, container, savedInstanceState); - } - - @Override - public void onCreate(android.os.Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Bundle args = getActivity().getIntent().getExtras(); - if (args != null) { - mCatalog = args.getInt(BUNDLE_KEY_CATALOG, 0); - mId = args.getInt(BUNDLE_KEY_ID, 0); - mOwnerId = args.getInt(BUNDLE_KEY_OWNER_ID, 0); - mIsBlogComment = args.getBoolean(BUNDLE_KEY_BLOG, false); - } - - if (!mIsBlogComment && mCatalog == CommentList.CATALOG_POST) { - ((BaseActivity) getActivity()) - .setActionBarTitle(R.string.post_answer); - } - - int mode = WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN - | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE; - getActivity().getWindow().setSoftInputMode(mode); - } - - @Override - public void onResume() { - super.onResume(); - outAty.emojiFragment.hideFlagButton(); - } - - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) { - Comment comment = data - .getParcelableExtra(Comment.BUNDLE_KEY_COMMENT); - if (comment != null) { - mAdapter.addItem(0, comment); - } - } - super.onActivityResult(requestCode, resultCode, data); - } - - @Override - protected CommentAdapter getListAdapter() { - return new CommentAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - String str = mIsBlogComment ? BLOG_CACHE_KEY_PREFIX : CACHE_KEY_PREFIX; - return new StringBuilder(str).append("_").append(mId).append("_Owner") - .append(mOwnerId).toString(); - } - - @Override - protected ListEntity parseList(InputStream is) throws Exception { - if (mIsBlogComment) { - return XmlUtils.toBean(BlogCommentList.class, is); - } else { - return XmlUtils.toBean(CommentList.class, is); - } - } - - @Override - protected ListEntity readList(Serializable seri) { - if (mIsBlogComment) - return ((BlogCommentList) seri); - return ((CommentList) seri); - } - - @Override - protected void sendRequestData() { - if (mIsBlogComment) { - OSChinaApi.getBlogCommentList(mId, mCurrentPage, mHandler); - } else { - OSChinaApi.getCommentList(mId, mCatalog, mCurrentPage, mHandler); - } - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - final Comment comment = mAdapter.getItem(position); - if (comment == null) - return; - outAty.emojiFragment.getEditText().setTag(comment); - outAty.emojiFragment.getEditText().setHint("回复:" + comment.getAuthor()); - outAty.emojiFragment.showSoftKeyboard(); - } - - private void handleDeleteComment(Comment comment) { - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - AppContext.showToastShort(R.string.deleting); - if (mIsBlogComment) { - OSChinaApi.deleteBlogComment( - AppContext.getInstance().getLoginUid(), mId, - comment.getId(), comment.getAuthorId(), mOwnerId, - new DeleteOperationResponseHandler(comment)); - } else { - OSChinaApi - .deleteComment(mId, mCatalog, comment.getId(), - comment.getAuthorId(), - new DeleteOperationResponseHandler(comment)); - } - } - - class DeleteOperationResponseHandler extends OperationResponseHandler { - - DeleteOperationResponseHandler(Object... args) { - super(args); - } - - @Override - public void onSuccess(int code, ByteArrayInputStream is, Object[] args) { - try { - Result res = XmlUtils.toBean(ResultBean.class, is).getResult(); - if (res.OK()) { - AppContext.showToastShort(R.string.delete_success); - mAdapter.removeItem(args[0]); - } else { - AppContext.showToastShort(res.getErrorMessage()); - } - } catch (Exception e) { - e.printStackTrace(); - onFailure(code, e.getMessage(), args); - } - } - - @Override - public void onFailure(int code, String errorMessage, Object[] args) { - AppContext.showToastShort(R.string.delete_faile); - } - } - - @Override - public boolean onItemLongClick(AdapterView parent, View view, - int position, long id) { - final Comment item = mAdapter.getItem(position); - if (item == null) - return false; - int itemsLen = item.getAuthorId() == AppContext.getInstance() - .getLoginUid() ? 2 : 1; - String[] items = new String[itemsLen]; - items[0] = getResources().getString(R.string.copy); - if (itemsLen == 2) { - items[1] = getResources().getString(R.string.delete); - } - DialogHelp.getSelectDialog(getActivity(), items, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - if (i == 0) { - TDevice.copyTextToBoard(HTMLUtil.delHTMLTag(item - .getContent())); - } else if (i == 1) { - handleDeleteComment(item); - } - } - }).show(); - return true; - } - - @Override - public void onClickSendButton(Editable text) { - if (!TDevice.hasInternet()) { - AppContext.showToastShort(R.string.tip_network_error); - return; - } - if (TextUtils.isEmpty(text)) { - AppContext.showToastShort(R.string.tip_comment_content_empty); - return; - } - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - if (outAty.emojiFragment.getEditText().getTag() != null) { - handleReplyComment((Comment) outAty.emojiFragment.getEditText().getTag(), - text.toString()); - } else { - sendReply(text.toString()); - } - } - - private void sendReply(String text) { - showWaitDialog(R.string.progress_submit); - if (mIsBlogComment) { - OSChinaApi.publicBlogComment(mId, AppContext.getInstance() - .getLoginUid(), text, mCommentHandler); - } else { - OSChinaApi.publicComment(mCatalog, mId, AppContext.getInstance() - .getLoginUid(), text, 1, mCommentHandler); - } - } - - private void handleReplyComment(Comment comment, String text) { - showWaitDialog(R.string.progress_submit); - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - if (mIsBlogComment) { - OSChinaApi.replyBlogComment(mId, AppContext.getInstance() - .getLoginUid(), text, comment.getId(), comment - .getAuthorId(), mCommentHandler); - } else { - OSChinaApi.replyComment(mId, mCatalog, comment.getId(), comment - .getAuthorId(), AppContext.getInstance().getLoginUid(), - text, mCommentHandler); - } - } - - @Override - public boolean onBackPressed() { - if (outAty.emojiFragment.isShowEmojiKeyBoard()) { - outAty.emojiFragment.hideAllKeyBoard(); - return true; - } - if (outAty.emojiFragment.getEditText().getTag() != null) { - outAty.emojiFragment.getEditText().setTag(null); - outAty.emojiFragment.getEditText().setHint("说点什么吧"); - return true; - } - return super.onBackPressed(); - } - - @Override - public void onClickFlagButton() {} -} diff --git a/app/src/main/java/net/oschina/app/fragment/EventAppliesFragment.java b/app/src/main/java/net/oschina/app/fragment/EventAppliesFragment.java deleted file mode 100644 index d7ce33c2b..000000000 --- a/app/src/main/java/net/oschina/app/fragment/EventAppliesFragment.java +++ /dev/null @@ -1,76 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; - -import net.oschina.app.AppContext; -import net.oschina.app.adapter.EventApplyAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Apply; -import net.oschina.app.bean.EventAppliesList; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import android.annotation.TargetApi; -import android.os.Build; -import android.view.View; -import android.widget.AdapterView; - -/** - * 活动出席人员列表 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年12月12日 下午7:59:10 - * - */ -@TargetApi(Build.VERSION_CODES.HONEYCOMB) -public class EventAppliesFragment extends BaseListFragment { - - protected static final String TAG = EventAppliesFragment.class.getSimpleName(); - private static final String CACHE_KEY_PREFIX = "event_apply_user_list"; - - @Override - public void initView(View view) { - super.initView(view); - } - - @Override - protected EventApplyAdapter getListAdapter() { - return new EventApplyAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX + "_" + mCatalog; - } - - @Override - protected EventAppliesList parseList(InputStream is) throws Exception { - EventAppliesList list = XmlUtils.toBean(EventAppliesList.class, is); - return list; - } - - @Override - protected EventAppliesList readList(Serializable seri) { - return ((EventAppliesList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getEventApplies(mCatalog, mCurrentPage, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - Apply item = (Apply) mAdapter.getItem(position); - if (item != null) { - if (AppContext.getInstance().isLogin()) { - UIHelper.showMessageDetail(getActivity(), item.getId(), item.getName()); - return; - } - UIHelper.showUserCenter(getActivity(), item.getId(),item.getName()); - } - - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/EventDetailFragment.java b/app/src/main/java/net/oschina/app/fragment/EventDetailFragment.java deleted file mode 100644 index 60262d4bc..000000000 --- a/app/src/main/java/net/oschina/app/fragment/EventDetailFragment.java +++ /dev/null @@ -1,322 +0,0 @@ -package net.oschina.app.fragment; - -import android.content.DialogInterface; -import android.os.Bundle; -import android.view.View; -import android.widget.Button; -import android.widget.TextView; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.base.CommonDetailFragment; -import net.oschina.app.bean.CommentList; -import net.oschina.app.bean.Event; -import net.oschina.app.bean.EventApplyData; -import net.oschina.app.bean.FavoriteList; -import net.oschina.app.bean.Post; -import net.oschina.app.bean.PostDetail; -import net.oschina.app.bean.Result; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.bean.SimpleBackPage; -import net.oschina.app.ui.EventApplyDialog; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.ThemeSwitchUtils; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.URLsUtils; -import net.oschina.app.util.XmlUtils; - -import cz.msebera.android.httpclient.Header; -import java.io.ByteArrayInputStream; -import java.io.InputStream; - -import butterknife.InjectView; - -/** - * Created by 火蚁 on 15/5/28. - */ -public class EventDetailFragment extends CommonDetailFragment { - - @InjectView(R.id.tv_event_title) - TextView mTvTitle; - - @InjectView(R.id.tv_event_start_time) - TextView mTvStartTime; - - @InjectView(R.id.tv_event_end_time) - TextView mTvEndTime; - - @InjectView(R.id.tv_event_spot) - TextView mTvSpot; - - @InjectView(R.id.rl_event_location) - View mLocation; - - @InjectView(R.id.bt_event_attend) - Button mBtAttend;// 出席人员 - - @InjectView(R.id.bt_event_apply) - Button mBtEventApply;// 活动报名 - - @InjectView(R.id.tv_event_tip) - TextView mEventTip; - - private EventApplyDialog mEventApplyDialog; - - @Override - public void initView(View view) { - super.initView(view); - mLocation.setOnClickListener(this); - mBtAttend.setOnClickListener(this); - mBtEventApply.setOnClickListener(this); - } - - @Override - protected int getLayoutId() { - return R.layout.fragment_event_detail; - } - - @Override - protected String getCacheKey() { - return "post_" + mId; - } - - @Override - protected void sendRequestDataForNet() { - OSChinaApi.getPostDetail(mId, mDetailHeandler); - } - - @Override - protected Post parseData(InputStream is) { - return XmlUtils.toBean(PostDetail.class, is).getPost(); - } - - @Override - protected String getWebViewBody(Post detail) { - StringBuffer body = new StringBuffer(); - body.append(UIHelper.WEB_STYLE).append(UIHelper.WEB_LOAD_IMAGES); - body.append(ThemeSwitchUtils.getWebViewBodyString()); - // 添加title - body.append(String.format("
%s
", mDetail.getTitle())); - // 添加作者和时间 - String time = StringUtils.friendly_time(mDetail.getPubDate()); - String author = String.format("%s", mDetail.getAuthorId(), mDetail.getAuthor()); - body.append(String.format("
%s    %s
", author, time)); - // 添加图片点击放大支持 - body.append(UIHelper.setHtmlCotentSupportImagePreview(mDetail.getBody())); - // 封尾 - body.append(""); - return body.toString(); - } - - @Override - protected void executeOnLoadDataSuccess(Post detail) { - super.executeOnLoadDataSuccess(detail); - mTvTitle.setText(mDetail.getTitle()); - mTvStartTime.setText(String.format( - getString(R.string.event_start_time), mDetail.getEvent() - .getStartTime())); - mTvEndTime.setText(String.format(getString(R.string.event_end_time), - mDetail.getEvent().getEndTime())); - mTvSpot.setText(mDetail.getEvent().getCity() + " " - + mDetail.getEvent().getSpot()); - - // 站外活动 - if (mDetail.getEvent().getCategory() == 4) { - mBtEventApply.setVisibility(View.VISIBLE); - mBtAttend.setVisibility(View.GONE); - mBtEventApply.setText("报名链接"); - } else { - notifyEventStatus(); - } - } - - // 显示活动 以及报名的状态 - private void notifyEventStatus() { - int eventStatus = mDetail.getEvent().getStatus(); - int applyStatus = mDetail.getEvent().getApplyStatus(); - - if (applyStatus == Event.APPLYSTATUS_ATTEND) { - mBtAttend.setVisibility(View.VISIBLE); - } else { - mBtAttend.setVisibility(View.GONE); - } - - if (eventStatus == Event.EVNET_STATUS_APPLYING) { - mBtEventApply.setVisibility(View.VISIBLE); - mBtEventApply.setEnabled(false); - switch (applyStatus) { - case Event.APPLYSTATUS_CHECKING: - mBtEventApply.setText("待确认"); - break; - case Event.APPLYSTATUS_CHECKED: - mBtEventApply.setText("已确认"); - mBtEventApply.setVisibility(View.GONE); - mEventTip.setVisibility(View.VISIBLE); - break; - case Event.APPLYSTATUS_ATTEND: - mBtEventApply.setText("已出席"); - break; - case Event.APPLYSTATUS_CANCLE: - mBtEventApply.setText("已取消"); - mBtEventApply.setEnabled(true); - break; - case Event.APPLYSTATUS_REJECT: - mBtEventApply.setText("已拒绝"); - break; - default: - mBtEventApply.setText("我要报名"); - mBtEventApply.setEnabled(true); - break; - } - } else { - mBtEventApply.setVisibility(View.GONE); - } - } - - @Override - protected void showCommentView() { - if (mDetail != null) { - UIHelper.showComment(getActivity(), mId, CommentList.CATALOG_POST); - } - } - - @Override - protected int getCommentType() { - return CommentList.CATALOG_POST; - } - - @Override - protected int getFavoriteTargetType() { - return FavoriteList.TYPE_POST; - } - - @Override - protected int getFavoriteState() { - return mDetail.getFavorite(); - } - - @Override - protected void updateFavoriteChanged(int newFavoritedState) { - mDetail.setFavorite(newFavoritedState); - saveCache(mDetail); - } - - @Override - protected int getCommentCount() { - return mDetail.getAnswerCount(); - } - - @Override - public void onClick(View v) { - int id = v.getId(); - switch (id) { - case R.id.rl_event_location: - UIHelper.showEventLocation(getActivity(), mDetail.getEvent() - .getCity(), mDetail.getEvent().getSpot()); - break; - case R.id.bt_event_attend: - showEventApplies(); - break; - case R.id.bt_event_apply: - showEventApply(); - break; - default: - break; - } - } - - private void showEventApplies() { - Bundle args = new Bundle(); - args.putInt(BaseListFragment.BUNDLE_KEY_CATALOG, mDetail.getEvent() - .getId()); - UIHelper.showSimpleBack(getActivity(), SimpleBackPage.EVENT_APPLY, args); - } - - private final AsyncHttpResponseHandler mApplyHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - Result rs = XmlUtils.toBean(ResultBean.class, - new ByteArrayInputStream(arg2)).getResult(); - if (rs.OK()) { - AppContext.showToast("报名成功"); - mEventApplyDialog.dismiss(); - mDetail.getEvent().setApplyStatus(Event.APPLYSTATUS_CHECKING); - } else { - AppContext.showToast(rs.getErrorMessage()); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - AppContext.showToast("报名失败"); - } - - @Override - public void onFinish() { - hideWaitDialog(); - } - }; - - /** - * 显示活动报名对话框 - */ - private void showEventApply() { - - if (mDetail.getEvent().getCategory() == 4) { - UIHelper.openSysBrowser(getActivity(), mDetail.getEvent().getUrl()); - return; - } - - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - if (mEventApplyDialog == null) { - mEventApplyDialog = new EventApplyDialog(getActivity(), mDetail.getEvent()); - mEventApplyDialog.setCanceledOnTouchOutside(true); - mEventApplyDialog.setCancelable(true); - mEventApplyDialog.setTitle("活动报名"); - mEventApplyDialog.setCanceledOnTouchOutside(true); - mEventApplyDialog.setNegativeButton(R.string.cancle, null); - mEventApplyDialog.setPositiveButton(R.string.ok, - new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface d, int which) { - EventApplyData data = null; - if ((data = mEventApplyDialog.getApplyData()) != null) { - data.setEvent(mId); - data.setUser(AppContext.getInstance() - .getLoginUid()); - showWaitDialog(R.string.progress_submit); - OSChinaApi.eventApply(data, mApplyHandler); - } - } - }); - } - - mEventApplyDialog.show(); - } - - @Override - protected String getShareTitle() { - return mDetail.getTitle(); - } - - @Override - protected String getShareContent() { - return StringUtils.getSubString(0, 55, - getFilterHtmlBody(mDetail.getBody())); - } - - @Override - protected String getShareUrl() { - return String.format(URLsUtils.URL_MOBILE + "question/%s_%s", mDetail.getAuthorId(), mId); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/EventFragment.java b/app/src/main/java/net/oschina/app/fragment/EventFragment.java deleted file mode 100644 index 8e8c6d591..000000000 --- a/app/src/main/java/net/oschina/app/fragment/EventFragment.java +++ /dev/null @@ -1,152 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.adapter.EventAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Constants; -import net.oschina.app.bean.Event; -import net.oschina.app.bean.EventList; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; - -/** - * 活动列表fragment - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年12月8日 下午5:17:32 - * - */ -public class EventFragment extends BaseListFragment { - - public static final String BUNDLE_KEY_EVENT_TYPE = "eventlist_type"; - - protected static final String TAG = EventFragment.class.getSimpleName(); - private static final String CACHE_KEY_PREFIX = "eventlist_"; - - private int event_type; - - @Override - protected EventAdapter getListAdapter() { - EventAdapter adapter = new EventAdapter(); - adapter.setEventType(event_type); - return adapter; - } - - private final BroadcastReceiver mReceiver = new BroadcastReceiver() { - - @Override - public void onReceive(Context context, Intent intent) { - requestData(true); - } - }; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Bundle args = getArguments(); - if (args != null) { - event_type = args.getInt(BUNDLE_KEY_EVENT_TYPE); - } - - if (event_type == EventList.EVENT_LIST_TYPE_MY_EVENT) { - IntentFilter filter = new IntentFilter( - Constants.INTENT_ACTION_USER_CHANGE); - filter.addAction(Constants.INTENT_ACTION_LOGOUT); - getActivity().registerReceiver(mReceiver, filter); - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - if (event_type == EventList.EVENT_LIST_TYPE_MY_EVENT) { - getActivity().unregisterReceiver(mReceiver); - } - } - - @Override - public void initView(View view) { - super.initView(view); - mErrorLayout.setOnLayoutClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - clickErrorLayout(); - } - }); - } - - private void clickErrorLayout() { - if (event_type == EventList.EVENT_LIST_TYPE_NEW_EVENT) { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - requestData(true); - } else { - if (AppContext.getInstance().isLogin()) { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - requestData(true); - } else { - UIHelper.showLoginActivity(getActivity()); - } - } - } - - @Override - protected void requestData(boolean refresh) { - - if (event_type == EventList.EVENT_LIST_TYPE_NEW_EVENT) { - mCatalog = -1; - super.requestData(refresh); - return; - } - if (AppContext.getInstance().isLogin()) { - mCatalog = AppContext.getInstance().getLoginUid(); - super.requestData(refresh); - } else { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - mErrorLayout.setErrorMessage(getString(R.string.unlogin_tip)); - } - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX + mCatalog; - } - - @Override - protected EventList parseList(InputStream is) throws Exception { - EventList list = XmlUtils.toBean(EventList.class, is); - return list; - } - - @Override - protected EventList readList(Serializable seri) { - return ((EventList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getEventList(mCurrentPage, mCatalog, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - Event event = mAdapter.getItem(position); - if (event != null) - UIHelper.showEventDetail(view.getContext(), event.getId()); - } - -} diff --git a/app/src/main/java/net/oschina/app/fragment/ExploreFragment.java b/app/src/main/java/net/oschina/app/fragment/ExploreFragment.java deleted file mode 100644 index e8bc09ddd..000000000 --- a/app/src/main/java/net/oschina/app/fragment/ExploreFragment.java +++ /dev/null @@ -1,111 +0,0 @@ -package net.oschina.app.fragment; - -import android.content.Intent; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import net.oschina.app.R; -import net.oschina.app.base.BaseFragment; -import net.oschina.app.bean.SimpleBackPage; -import net.oschina.app.ui.FindUserActivity; -import net.oschina.app.ui.ShakeActivity; -import net.oschina.app.util.UIHelper; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 发现页面 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年11月4日 下午3:34:07 - * - */ - -public class ExploreFragment extends BaseFragment { - - @InjectView(R.id.rl_active) - View mRlActive; - - @InjectView(R.id.rl_find_osc) - View mFindOSCer; - - @InjectView(R.id.rl_city) - View mCity; - - @InjectView(R.id.rl_activities) - View mActivities; - - @InjectView(R.id.rl_scan) - View mScan; - - @InjectView(R.id.rl_shake) - View mShake; - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - super.onCreateView(inflater, container, savedInstanceState); - View view = inflater.inflate(R.layout.fragment_explore, null); - ButterKnife.inject(this, view); - initView(view); - return view; - } - - @Override - public void onClick(View v) { - int id = v.getId(); - switch (id) { - case R.id.rl_active: - UIHelper.showMyActive(getActivity()); - break; - case R.id.rl_find_osc: - showFindUser(); - break; - case R.id.rl_city: - UIHelper.showSimpleBack(getActivity(), SimpleBackPage.SAME_CITY); - break; - case R.id.rl_activities: - UIHelper.showSimpleBack(getActivity(), SimpleBackPage.EVENT_LIST); - break; - case R.id.rl_scan: - UIHelper.showScanActivity(getActivity()); - break; - case R.id.rl_shake: - showShake(); - break; - default: - break; - } - } - - private void showShake() { - Intent intent = new Intent(); - intent.setClass(getActivity(), ShakeActivity.class); - getActivity().startActivity(intent); - } - - private void showFindUser() { - Intent intent = new Intent(); - intent.setClass(getActivity(), FindUserActivity.class); - getActivity().startActivity(intent); - } - - @Override - public void initView(View view) { - mRlActive.setOnClickListener(this); - - mFindOSCer.setOnClickListener(this); - mCity.setOnClickListener(this); - mActivities.setOnClickListener(this); - mScan.setOnClickListener(this); - mShake.setOnClickListener(this); - } - - @Override - public void initData() { - - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/FeedBackFragment.java b/app/src/main/java/net/oschina/app/fragment/FeedBackFragment.java deleted file mode 100644 index a6f5e403f..000000000 --- a/app/src/main/java/net/oschina/app/fragment/FeedBackFragment.java +++ /dev/null @@ -1,96 +0,0 @@ -package net.oschina.app.fragment; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseFragment; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TDevice; - -import cz.msebera.android.httpclient.Header; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; -import butterknife.ButterKnife; -import butterknife.InjectView; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -public class FeedBackFragment extends BaseFragment { - @InjectView(R.id.et_feedback) - EditText mEtContent; - @InjectView(R.id.et_contact) - EditText mEtContact; - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - super.onCreateView(inflater, container, savedInstanceState); - View view = inflater.inflate(R.layout.fragment_feedback, null); - ButterKnife.inject(this, view); - initView(view); - return view; - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setHasOptionsMenu(true); - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.submit_menu, menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.public_menu_send: - String data = mEtContent.getText().toString(); - if (StringUtils.isEmpty(data)) { - AppContext.showToast("你忘记写建议咯"); - } else { - data += "
"; - data += mEtContact.getText() + "
"; - data += TDevice.getVersionName() + "(" - + TDevice.getVersionCode() + ")
"; - OSChinaApi.feedback(data, new AsyncHttpResponseHandler() { - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - AppContext.showToast("已收到你的建议,谢谢"); - getActivity().finish(); - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - AppContext.showToast("网络异常,请稍后重试"); - } - }); - } - break; - } - return true; - } - - @Override - public void onClick(View v) { - - } - - @Override - public void initView(View view) { - - } - - @Override - public void initData() { - - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/FriendsFragment.java b/app/src/main/java/net/oschina/app/fragment/FriendsFragment.java deleted file mode 100644 index 9a84cd48d..000000000 --- a/app/src/main/java/net/oschina/app/fragment/FriendsFragment.java +++ /dev/null @@ -1,137 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; -import java.util.List; - -import net.oschina.app.AppContext; -import net.oschina.app.adapter.FriendAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Entity; -import net.oschina.app.bean.Friend; -import net.oschina.app.bean.FriendsList; -import net.oschina.app.bean.Notice; -import net.oschina.app.service.NoticeUtils; -import net.oschina.app.ui.MainActivity; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import net.oschina.app.viewpagerfragment.NoticeViewPagerFragment; -import android.annotation.TargetApi; -import android.os.Build; -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; - -/** - * 关注、粉丝 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年11月6日 上午11:15:37 - * - */ -@TargetApi(Build.VERSION_CODES.HONEYCOMB) -public class FriendsFragment extends BaseListFragment { - - public final static String BUNDLE_KEY_UID = "UID"; - - protected static final String TAG = FriendsFragment.class.getSimpleName(); - private static final String CACHE_KEY_PREFIX = "friend_list"; - - private int mUid; - - @Override - public void initView(View view) { - super.initView(view); - } - - @Override - public void onCreate(android.os.Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Bundle args = getArguments(); - if (args != null) { - mUid = args.getInt(BUNDLE_KEY_UID, 0); - } - } - - @Override - public void onResume() { - if (mCatalog == FriendsList.TYPE_FANS - && mUid == AppContext.getInstance().getLoginUid()) { - refreshNotice(); - } - super.onResume(); - } - - private void refreshNotice() { - Notice notice = MainActivity.mNotice; - if (notice != null && notice.getNewFansCount() > 0) { - onRefresh(); - } - } - - @Override - protected FriendAdapter getListAdapter() { - return new FriendAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX + "_" + mCatalog + "_" + mUid; - } - - @Override - protected FriendsList parseList(InputStream is) throws Exception { - FriendsList list = XmlUtils.toBean(FriendsList.class, is); - return list; - } - - @Override - protected FriendsList readList(Serializable seri) { - return ((FriendsList) seri); - } - - @Override - protected boolean compareTo(List data, Entity enity) { - int s = data.size(); - if (enity != null) { - for (int i = 0; i < s; i++) { - if (((Friend) enity).getUserid() == ((Friend) data.get(i)) - .getUserid()) { - return true; - } - } - } - return false; - } - - @Override - protected void sendRequestData() { - OSChinaApi.getFriendList(mUid, mCatalog, mCurrentPage, mHandler); - } - - @Override - protected void onRefreshNetworkSuccess() { - if ((NoticeViewPagerFragment.sCurrentPage == 3 || NoticeViewPagerFragment.sShowCount[3] > 0) - && mCatalog == FriendsList.TYPE_FANS - && mUid == AppContext.getInstance().getLoginUid()) { - NoticeUtils.clearNotice(Notice.TYPE_NEWFAN); - UIHelper.sendBroadcastForNotice(getActivity()); - } - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - Friend item = (Friend) mAdapter.getItem(position); - if (item != null) { - if (mUid == AppContext.getInstance().getLoginUid()) { - UIHelper.showMessageDetail(getActivity(), item.getUserid(), - item.getName()); - return; - } - UIHelper.showUserCenter(getActivity(), item.getUserid(), - item.getName()); - } - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/MessageDetailFragment.java b/app/src/main/java/net/oschina/app/fragment/MessageDetailFragment.java deleted file mode 100644 index 15c195191..000000000 --- a/app/src/main/java/net/oschina/app/fragment/MessageDetailFragment.java +++ /dev/null @@ -1,461 +0,0 @@ -package net.oschina.app.fragment; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.IntentFilter; -import android.graphics.Color; -import android.os.Bundle; -import android.text.Editable; -import android.util.SparseArray; -import android.view.View; -import android.view.WindowManager; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemLongClickListener; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.adapter.MessageDetailAdapter; -import net.oschina.app.api.OperationResponseHandler; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseActivity; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Comment; -import net.oschina.app.bean.CommentList; -import net.oschina.app.bean.Constants; -import net.oschina.app.bean.MessageDetail; -import net.oschina.app.bean.MessageDetailList; -import net.oschina.app.bean.Result; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.bean.User; -import net.oschina.app.emoji.KJEmojiFragment; -import net.oschina.app.emoji.OnSendClickListener; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.HTMLUtil; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; - -import cz.msebera.android.httpclient.Header; -import org.kymjs.kjframe.utils.StringUtils; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * 与某人的聊天记录界面(私信详情) - * - * @author kymjs (http://www.kymjs.com/) - * - */ -public class MessageDetailFragment extends BaseListFragment implements - OnItemLongClickListener, OnSendClickListener,MessageDetailAdapter.OnRetrySendMessageListener{ - protected static final String TAG = ActiveFragment.class.getSimpleName(); - public static final String BUNDLE_KEY_FID = "BUNDLE_KEY_FID"; - public static final String BUNDLE_KEY_FNAME = "BUNDLE_KEY_FNAME"; - private static final String CACHE_KEY_PREFIX = "message_detail_list"; - //时间间隔(要求:聊天时间显示,时间间隔为五分钟以上才显示出来) - private final static long TIME_INTERVAL = 1000 * 60 * 5; - - private int mFid; - private String mFName; - private int mMsgTag; - private int mPageCount; - private long mLastShowDate; //最后显示出来的时间 - public KJEmojiFragment emojiFragment = new KJEmojiFragment(); - //存放正在发送的消息,key 为生成的一个临时messageID(msgTag),value为Message实体 - //当消息发送成功后,从mSendingMsgs删除对应的Message实体 - private SparseArray mSendingMsgs = new SparseArray(); - - private final BroadcastReceiver mReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (mErrorLayout != null) { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - mErrorLayout.setErrorMessage(getString(R.string.unlogin_tip)); - } - } - }; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Bundle args = getArguments(); - if (args != null) { - mFid = args.getInt(BUNDLE_KEY_FID); - mFName = args.getString(BUNDLE_KEY_FNAME); - mCatalog = CommentList.CATALOG_MESSAGE; - } - IntentFilter filter = new IntentFilter(Constants.INTENT_ACTION_LOGOUT); - getActivity().registerReceiver(mReceiver, filter); - - ((BaseActivity) getActivity()).setActionBarTitle(mFName); - - int mode = WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN - | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE; - getActivity().getWindow().setSoftInputMode(mode); - - getActivity().getSupportFragmentManager().beginTransaction() - .replace(R.id.emoji_container, emojiFragment).commit(); - } - - @Override - public void onDestroy() { - getActivity().unregisterReceiver(mReceiver); - super.onDestroy(); - } - - @Override - public boolean onBackPressed() { - if (emojiFragment.isShowEmojiKeyBoard()) { - emojiFragment.hideAllKeyBoard(); - return true; - } else { - return super.onBackPressed(); - } - } - - @Override - protected MessageDetailAdapter getListAdapter() { - MessageDetailAdapter adapter = new MessageDetailAdapter(); - adapter.setOnRetrySendMessageListener(this); - return adapter; - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX + mFid; - } - - @Override - protected MessageDetailList parseList(InputStream is) throws Exception { - MessageDetailList list = XmlUtils.toBean(MessageDetailList.class, is); - handleShowDate(list.getList()); - mPageCount = (int) Math.ceil((float) list.getMessageCount() / getPageSize()); - return list; - } - - @Override - protected MessageDetailList readList(Serializable seri) { - MessageDetailList list = ((MessageDetailList) seri); - handleShowDate(list.getList()); - return list; - } - - /** - * 处理时间显示,设置哪些需要显示时间,哪些不需要显示时间 - * @param list - */ - private void handleShowDate(List list) { - MessageDetail msg = null; - long lastGroupTime = 0l; - //因为获得的列表是按时间降序的,所以需要倒着遍历 - for (int i = list.size() - 1; i >= 0; i--) { - msg = list.get(i); - Date date = net.oschina.app.util.StringUtils.toDate(msg.getPubDate()); - if (date != null && isNeedShowDate(date.getTime(), lastGroupTime)) { - lastGroupTime = date.getTime(); - msg.setShowDate(true); - } - } - //只设置最新的时间 - if (lastGroupTime > mLastShowDate) { - mLastShowDate = lastGroupTime; - } - } - - private boolean isNeedShowDate(long currentTime,long lastTime){ - return currentTime - lastTime > TIME_INTERVAL; - } - - @Override - public void initView(View view) { - super.initView(view); - mListView.setDivider(null); - mListView.setDividerHeight(0); - if(!AppContext.getNightModeSwitch()) { - mListView.setBackgroundColor(Color.parseColor("#ebebeb")); - } - mListView.setOnItemLongClickListener(this); - //移除父类设置的OnScrollListener,这里不需要下拉加载 - mListView.setOnScrollListener(null); - mErrorLayout.setOnLayoutClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (AppContext.getInstance().isLogin()) { - requestData(false); - } else { - UIHelper.showLoginActivity(getActivity()); - } - } - }); - } - - @Override - protected void requestData(boolean refresh) { - mErrorLayout.setErrorMessage(""); - if (AppContext.getInstance().isLogin()) { - super.requestData(refresh); - } else { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - mErrorLayout.setErrorMessage(getString(R.string.unlogin_tip)); - } - } - - @Override - protected void sendRequestData() { - OSChinaApi.getChatMessageList(mFid, mCurrentPage, mHandler); - } - - @Override - protected boolean isReadCacheData(boolean refresh) { - if (!TDevice.hasInternet()) { - return true; - } else { - return false; - } - } - - @Override - protected void executeOnLoadDataSuccess(List data) { - mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - if (data == null) { - data = new ArrayList(1); - } - if (mAdapter != null) { - if (mCurrentPage == 0) - mAdapter.clear(); - mAdapter.addData(data); - if (data.size() == 0 && mState == STATE_REFRESH) { - mErrorLayout.setErrorType(EmptyLayout.NODATA); - } else if (data.size() < getPageSize()) { - mAdapter.setState(ListBaseAdapter.STATE_OTHER); - } else { - mAdapter.setState(ListBaseAdapter.STATE_LOAD_MORE); - } - mAdapter.notifyDataSetChanged(); - //只有第一次加载,才需要滚动到底部 - if (mCurrentPage == 0) - mListView.setSelection(mListView.getBottom()); - else if (data.size() > 1) { - mListView.setSelection(data.size() - 1); - } - } - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) {} - - @Override - public boolean onItemLongClick(AdapterView parent, View view, - int position, long id) { - final MessageDetail message = mAdapter.getItem(position); - DialogHelp.getSelectDialog(getActivity(), getResources().getStringArray(R.array.message_list_options), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - switch (i) { - case 0: - TDevice.copyTextToBoard(HTMLUtil.delHTMLTag(message - .getContent())); - break; - case 1: - handleDeleteMessage(message); - break; - default: - break; - } - } - }).show(); - return true; - } - - // 下拉加载数据 - @Override - public void onRefresh() { - if (mState == STATE_REFRESH) { - return; - } - if(mCurrentPage==mPageCount-1){ - AppContext.showToastShort("已加载全部数据!"); - setSwipeRefreshLoadedState(); - return; - } - // 设置顶部正在刷新 - mListView.setSelection(0); - setSwipeRefreshLoadingState(); - mState = STATE_REFRESH; - mCurrentPage++; - requestData(true); - } - - public void showFriendUserCenter(){ - UIHelper.showUserCenter(getActivity(), mFid, mFName); - } - - @Override - public void onResume() { - super.onResume(); - emojiFragment.hideFlagButton(); - } - - private void handleDeleteMessage(final MessageDetail message) { - DialogHelp.getConfirmDialog(getActivity(), "是否删除该私信?", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - showWaitDialog(R.string.progress_submit); - OSChinaApi.deleteComment(mFid, - CommentList.CATALOG_MESSAGE, message.getId(), - message.getAuthorId(), - new DeleteMessageOperationHandler(message)); - } - }).show(); - } - - class DeleteMessageOperationHandler extends OperationResponseHandler { - - public DeleteMessageOperationHandler(Object... args) { - super(args); - } - - @Override - public void onSuccess(int code, ByteArrayInputStream is, Object[] args) - throws Exception { - Result res = XmlUtils.toBean(ResultBean.class, is).getResult(); - if (res.OK()) { - Comment msg = (Comment) args[0]; - mAdapter.removeItem(msg); - mAdapter.notifyDataSetChanged(); - hideWaitDialog(); - AppContext.showToastShort(R.string.tip_delete_success); - } else { - AppContext.showToastShort(res.getErrorMessage()); - hideWaitDialog(); - } - } - - @Override - public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { - - } - - @Override - public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { - AppContext.showToastShort(R.string.tip_delete_faile); - hideWaitDialog(); - } - } - - @Override - public void onClickSendButton(Editable str) { - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - if (StringUtils.isEmpty(str)) { - AppContext.showToastShort(R.string.tip_content_empty); - return; - } - MessageDetail message = new MessageDetail(); - User user = AppContext.getInstance().getLoginUser(); - int msgTag = mMsgTag++; - message.setId(msgTag); - message.setPortrait(user.getPortrait()); - message.setAuthor(user.getName()); - message.setAuthorId(user.getId()); - message.setContent(str.toString()); - sendMessage(message); - } - - /** - * 发送消息 - * @param msg - */ - private void sendMessage(MessageDetail msg){ - msg.setStatus(MessageDetail.MessageStatus.SENDING); - Date date = new Date(); - msg.setPubDate(net.oschina.app.util.StringUtils.getDateString(date)); - //如果此次发表的时间距离上次的时间达到了 TIME_INTERVAL 的间隔要求,则显示时间 - if(isNeedShowDate(date.getTime(),mLastShowDate)) { - msg.setShowDate(true); - mLastShowDate = date.getTime(); - } - - //如果待发送列表没有此条消息,说明是新消息,不是发送失败再次发送的,不需要再次添加 - if(mSendingMsgs.indexOfKey(msg.getId())<0) { - mSendingMsgs.put(msg.getId(), msg); - mAdapter.addItem(0, msg); - mListView.setSelection(mListView.getBottom()); - }else{ - mAdapter.notifyDataSetChanged(); - } - OSChinaApi.publicMessage(msg.getAuthorId(), mFid, msg.getContent(), new SendMessageResponseHandler(msg.getId())); - } - - @Override - public void onClickFlagButton() {} - - @Override - public void onRetrySendMessage(int msgId) { - MessageDetail message = mSendingMsgs.get(msgId); - if (message != null) { - sendMessage(message); - } - } - - class SendMessageResponseHandler extends AsyncHttpResponseHandler{ - - private int msgTag; - - public SendMessageResponseHandler(int msgTag) { - this.msgTag = msgTag; - } - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - ResultBean resb = XmlUtils.toBean(ResultBean.class, - new ByteArrayInputStream(arg2)); - Result res = resb.getResult(); - if (res.OK()) { - //从mSendingMsgs获取发送时放入的MessageDetail实体 - MessageDetail message = mSendingMsgs.get(this.msgTag); - MessageDetail serverMsg = resb.getMessage(); - //把id设置为服务器返回的id - message.setId(serverMsg.getId()); - message.setStatus(MessageDetail.MessageStatus.NORMAL); - //从待发送列表移除 - mSendingMsgs.remove(this.msgTag); - mAdapter.notifyDataSetChanged(); - } else { - error(); - AppContext.showToastShort(res.getErrorMessage()); - } - emojiFragment.clean(); - } catch (Exception e) { - e.printStackTrace(); - onFailure(arg0, arg1, arg2, e); - } - } - - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) { - error(); - } - - private void error(){ - mSendingMsgs.get(this.msgTag).setStatus(MessageDetail.MessageStatus.ERROR); - mAdapter.notifyDataSetChanged(); - } - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/MessageFragment.java b/app/src/main/java/net/oschina/app/fragment/MessageFragment.java deleted file mode 100644 index 39d45505c..000000000 --- a/app/src/main/java/net/oschina/app/fragment/MessageFragment.java +++ /dev/null @@ -1,239 +0,0 @@ -package net.oschina.app.fragment; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemLongClickListener; -import cz.msebera.android.httpclient.Header; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.adapter.MessageAdapter; -import net.oschina.app.api.OperationResponseHandler; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Constants; -import net.oschina.app.bean.MessageList; -import net.oschina.app.bean.Messages; -import net.oschina.app.bean.Notice; -import net.oschina.app.bean.Result; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.service.NoticeUtils; -import net.oschina.app.ui.MainActivity; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.HTMLUtil; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import net.oschina.app.viewpagerfragment.NoticeViewPagerFragment; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.io.Serializable; - -public class MessageFragment extends BaseListFragment implements - OnItemLongClickListener { - protected static final String TAG = ActiveFragment.class.getSimpleName(); - private static final String CACHE_KEY_PREFIX = "message_list"; - private boolean mIsWatingLogin; - - private final BroadcastReceiver mLogoutReceiver = new BroadcastReceiver() { - - @Override - public void onReceive(Context context, Intent intent) { - if (mErrorLayout != null) { - mIsWatingLogin = true; - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - mErrorLayout.setErrorMessage(getString(R.string.unlogin_tip)); - } - } - }; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - IntentFilter filter = new IntentFilter(Constants.INTENT_ACTION_LOGOUT); - getActivity().registerReceiver(mLogoutReceiver, filter); - } - - @Override - public void onDestroy() { - getActivity().unregisterReceiver(mLogoutReceiver); - super.onDestroy(); - } - - @Override - public void onResume() { - if (mIsWatingLogin) { - mCurrentPage = 0; - mState = STATE_REFRESH; - requestData(false); - } - refreshNotice(); - super.onResume(); - } - - private void refreshNotice() { - Notice notice = MainActivity.mNotice; - if (notice != null && notice.getMsgCount() > 0) { - onRefresh(); - } - } - - @Override - protected MessageAdapter getListAdapter() { - return new MessageAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX; - } - - @Override - protected MessageList parseList(InputStream is) throws Exception { - MessageList list = XmlUtils.toBean(MessageList.class, is); - return list; - } - - @Override - protected MessageList readList(Serializable seri) { - return ((MessageList) seri); - } - - @Override - public void initView(View view) { - super.initView(view); - mListView.setDivider(null); - mListView.setDividerHeight(0); - mListView.setOnItemLongClickListener(this); - mErrorLayout.setOnLayoutClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (AppContext.getInstance().isLogin()) { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - requestData(false); - } else { - UIHelper.showLoginActivity(getActivity()); - } - } - }); - if (AppContext.getInstance().isLogin()) { - UIHelper.sendBroadcastForNotice(getActivity()); - } - } - - @Override - protected void requestData(boolean refresh) { - if (AppContext.getInstance().isLogin()) { - mIsWatingLogin = false; - super.requestData(refresh); - } else { - mIsWatingLogin = true; - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - mErrorLayout.setErrorMessage(getString(R.string.unlogin_tip)); - } - } - - @Override - protected void sendRequestData() { - OSChinaApi.getMessageList(AppContext.getInstance().getLoginUid(), - mCurrentPage, mHandler); - } - - @Override - protected void onRefreshNetworkSuccess() { - if (2 == NoticeViewPagerFragment.sCurrentPage - || NoticeViewPagerFragment.sShowCount[2] > 0) { // 在page中第三个位置 - NoticeUtils.clearNotice(Notice.TYPE_MESSAGE); - UIHelper.sendBroadcastForNotice(getActivity()); - } - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - Messages message = (Messages) mAdapter.getItem(position); - if (message != null) - UIHelper.showMessageDetail(getActivity(), message.getFriendId(), - message.getFriendName()); - } - - @Override - public boolean onItemLongClick(AdapterView parent, View view, - int position, long id) { - final Messages message = (Messages) mAdapter.getItem(position); - DialogHelp.getSelectDialog(getActivity(), getResources().getStringArray(R.array.message_list_options), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - switch (i) { - case 0: - TDevice.copyTextToBoard(HTMLUtil.delHTMLTag(message - .getContent())); - break; - case 1: - handleDeleteMessage(message); - break; - default: - break; - } - } - }).show(); - return true; - } - - private void handleDeleteMessage(final Messages message) { - - DialogHelp.getConfirmDialog(getActivity(), getString(R.string.confirm_delete_message, - message.getFriendName()), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - showWaitDialog(R.string.progress_submit); - - OSChinaApi.deleteMessage(AppContext.getInstance() - .getLoginUid(), message.getFriendId(), - new DeleteMessageOperationHandler(message)); - } - }).show(); - } - - class DeleteMessageOperationHandler extends OperationResponseHandler { - - public DeleteMessageOperationHandler(Object... args) { - super(args); - } - - @Override - public void onSuccess(int code, ByteArrayInputStream is, Object[] args) - throws Exception { - Result res = XmlUtils.toBean(ResultBean.class, is).getResult(); - if (res.OK()) { - Messages msg = (Messages) args[0]; - mAdapter.removeItem(msg); - mAdapter.notifyDataSetChanged(); - hideWaitDialog(); - AppContext.showToastShort(R.string.tip_delete_success); - } else { - AppContext.showToastShort(res.getErrorMessage()); - hideWaitDialog(); - } - } - - @Override - public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { - - } - - @Override - public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { - AppContext.showToastShort(R.string.tip_delete_faile); - hideWaitDialog(); - } - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/MyInformationFragment.java b/app/src/main/java/net/oschina/app/fragment/MyInformationFragment.java deleted file mode 100644 index b2f295f95..000000000 --- a/app/src/main/java/net/oschina/app/fragment/MyInformationFragment.java +++ /dev/null @@ -1,421 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.ByteArrayInputStream; -import java.io.Serializable; -import java.lang.ref.WeakReference; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseFragment; -import net.oschina.app.bean.Constants; -import net.oschina.app.bean.MyInformation; -import net.oschina.app.bean.Notice; -import net.oschina.app.bean.SimpleBackPage; -import net.oschina.app.bean.User; -import net.oschina.app.cache.CacheManager; -import net.oschina.app.ui.MainActivity; -import net.oschina.app.ui.MyQrodeDialog; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import net.oschina.app.widget.AvatarView; -import net.oschina.app.widget.BadgeView; - - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.AsyncTask; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.util.TypedValue; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; -import cz.msebera.android.httpclient.Header; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -/** - * 登录用户中心页面 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @author kymjs (http://my.oschina.net/kymjs) - * @version 创建时间:2014年10月30日 下午4:05:47 - */ -public class MyInformationFragment extends BaseFragment { - - public static final int sChildView = 9; // 在没有加入TeamList控件时rootview有多少子布局 - - @InjectView(R.id.iv_avatar) - AvatarView mIvAvatar; - @InjectView(R.id.iv_gender) - ImageView mIvGender; - @InjectView(R.id.tv_name) - TextView mTvName; - @InjectView(R.id.tv_score) - TextView mTvScore; - @InjectView(R.id.tv_favorite) - TextView mTvFavorite; - @InjectView(R.id.tv_following) - TextView mTvFollowing; - @InjectView(R.id.tv_follower) - TextView mTvFans; - @InjectView(R.id.tv_mes) - View mMesView; - @InjectView(R.id.error_layout) - EmptyLayout mErrorLayout; - @InjectView(R.id.iv_qr_code) - ImageView mQrCode; - @InjectView(R.id.ll_user_container) - View mUserContainer; - @InjectView(R.id.rl_user_unlogin) - View mUserUnLogin; - @InjectView(R.id.rootview) - LinearLayout rootView; - - private static BadgeView mMesCount; - - private boolean mIsWatingLogin; - - private User mInfo; - private AsyncTask mCacheTask; - - private final BroadcastReceiver mReceiver = new BroadcastReceiver() { - - @Override - public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - if (action.equals(Constants.INTENT_ACTION_LOGOUT)) { - if (mErrorLayout != null) { - mIsWatingLogin = true; - steupUser(); - mMesCount.hide(); - } - } else if (action.equals(Constants.INTENT_ACTION_USER_CHANGE)) { - requestData(true); - } else if (action.equals(Constants.INTENT_ACTION_NOTICE)) { - setNotice(); - } - } - }; - - private final AsyncHttpResponseHandler mHandler = new AsyncHttpResponseHandler() { - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - mInfo = XmlUtils.toBean(MyInformation.class, - new ByteArrayInputStream(arg2)).getUser(); - if (mInfo != null) { - fillUI(); - AppContext.getInstance().updateUserInfo(mInfo); - new SaveCacheTask(getActivity(), mInfo, getCacheKey()) - .execute(); - } else { - onFailure(arg0, arg1, arg2, new Throwable()); - } - } catch (Exception e) { - e.printStackTrace(); - onFailure(arg0, arg1, arg2, e); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) {} - }; - - private void steupUser() { - if (mIsWatingLogin) { - mUserContainer.setVisibility(View.GONE); - mUserUnLogin.setVisibility(View.VISIBLE); - } else { - mUserContainer.setVisibility(View.VISIBLE); - mUserUnLogin.setVisibility(View.GONE); - } - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - IntentFilter filter = new IntentFilter(Constants.INTENT_ACTION_LOGOUT); - filter.addAction(Constants.INTENT_ACTION_USER_CHANGE); - getActivity().registerReceiver(mReceiver, filter); - } - - @Override - public void onResume() { - super.onResume(); - setNotice(); - } - - public void setNotice() { - if (MainActivity.mNotice != null) { - - Notice notice = MainActivity.mNotice; - int atmeCount = notice.getAtmeCount();// @我 - int msgCount = notice.getMsgCount();// 留言 - int reviewCount = notice.getReviewCount();// 评论 - int newFansCount = notice.getNewFansCount();// 新粉丝 - int newLikeCount = notice.getNewLikeCount();// 获得点赞 - int activeCount = atmeCount + reviewCount + msgCount + newFansCount + newLikeCount;// 信息总数 - if (activeCount > 0) { - mMesCount.setText(activeCount + ""); - mMesCount.show(); - } else { - mMesCount.hide(); - } - - } else { - mMesCount.hide(); - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - getActivity().unregisterReceiver(mReceiver); - } - - @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_my_information, - container, false); - ButterKnife.inject(this, view); - initView(view); - return view; - } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - requestData(true); - mInfo = AppContext.getInstance().getLoginUser(); - fillUI(); - } - - @Override - public void initView(View view) { - mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - mIvAvatar.setOnClickListener(this); - mErrorLayout.setOnLayoutClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (AppContext.getInstance().isLogin()) { - requestData(true); - } else { - UIHelper.showLoginActivity(getActivity()); - } - } - }); - view.findViewById(R.id.ly_favorite).setOnClickListener(this); - view.findViewById(R.id.ly_following).setOnClickListener(this); - view.findViewById(R.id.ly_follower).setOnClickListener(this); - view.findViewById(R.id.rl_message).setOnClickListener(this); - view.findViewById(R.id.rl_team).setOnClickListener(this); - view.findViewById(R.id.rl_blog).setOnClickListener(this); - view.findViewById(R.id.rl_note).setOnClickListener( - new OnClickListener() { - @Override - public void onClick(View v) { - UIHelper.showSimpleBack(getActivity(), - SimpleBackPage.NOTE); - } - }); - mUserUnLogin.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - UIHelper.showLoginActivity(getActivity()); - } - }); - - mMesCount = new BadgeView(getActivity(), mMesView); - mMesCount.setTextSize(TypedValue.COMPLEX_UNIT_SP, 10); - mMesCount.setBadgePosition(BadgeView.POSITION_CENTER); - mMesCount.setGravity(Gravity.CENTER); - mMesCount.setBackgroundResource(R.drawable.notification_bg); - mQrCode.setOnClickListener(this); - // // 初始化团队列表数据 - // String cache = PreferenceHelper.readString(getActivity(), - // TEAM_LIST_FILE, TEAM_LIST_KEY); - // if (!StringUtils.isEmpty(cache)) { - // List teams = TeamList.toTeamList(cache); - // addTeamLayout(teams); - // } - } - - private void fillUI() { - if (mInfo == null) - return; - mIvAvatar.setAvatarUrl(mInfo.getPortrait()); - mTvName.setText(mInfo.getName()); - mIvGender - .setImageResource(StringUtils.toInt(mInfo.getGender()) != 2 ? R.drawable.userinfo_icon_male - : R.drawable.userinfo_icon_female); - mTvScore.setText(String.valueOf(mInfo.getScore())); - mTvFavorite.setText(String.valueOf(mInfo.getFavoritecount())); - mTvFollowing.setText(String.valueOf(mInfo.getFollowers())); - mTvFans.setText(String.valueOf(mInfo.getFans())); - } - - private void requestData(boolean refresh) { - if (AppContext.getInstance().isLogin()) { - mIsWatingLogin = false; - String key = getCacheKey(); - if (refresh || TDevice.hasInternet() - && (!CacheManager.isExistDataCache(getActivity(), key))) { - sendRequestData(); - } else { - readCacheData(key); - } - } else { - mIsWatingLogin = true; - } - steupUser(); - } - - private void readCacheData(String key) { - cancelReadCacheTask(); - mCacheTask = new CacheTask(getActivity()).execute(key); - } - - private void cancelReadCacheTask() { - if (mCacheTask != null) { - mCacheTask.cancel(true); - mCacheTask = null; - } - } - - private void sendRequestData() { - int uid = AppContext.getInstance().getLoginUid(); - OSChinaApi.getMyInformation(uid, mHandler); - } - - private String getCacheKey() { - return "my_information" + AppContext.getInstance().getLoginUid(); - } - - private class CacheTask extends AsyncTask { - private final WeakReference mContext; - - private CacheTask(Context context) { - mContext = new WeakReference(context); - } - - @Override - protected User doInBackground(String... params) { - Serializable seri = CacheManager.readObject(mContext.get(), - params[0]); - if (seri == null) { - return null; - } else { - return (User) seri; - } - } - - @Override - protected void onPostExecute(User info) { - super.onPostExecute(info); - if (info != null) { - mInfo = info; - // mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - // } else { - // mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - fillUI(); - } - } - } - - private class SaveCacheTask extends AsyncTask { - private final WeakReference mContext; - private final Serializable seri; - private final String key; - - private SaveCacheTask(Context context, Serializable seri, String key) { - mContext = new WeakReference(context); - this.seri = seri; - this.key = key; - } - - @Override - protected Void doInBackground(Void... params) { - CacheManager.saveObject(mContext.get(), seri, key); - return null; - } - } - - @Override - public void onClick(View v) { - if (mIsWatingLogin) { - AppContext.showToast(R.string.unlogin); - UIHelper.showLoginActivity(getActivity()); - return; - } - final int id = v.getId(); - switch (id) { - case R.id.iv_avatar: - UIHelper.showSimpleBack(getActivity(), - SimpleBackPage.MY_INFORMATION_DETAIL); - break; - case R.id.iv_qr_code: - showMyQrCode(); - break; - case R.id.ly_following: - UIHelper.showFriends(getActivity(), AppContext.getInstance() - .getLoginUid(), 0); - break; - case R.id.ly_follower: - UIHelper.showFriends(getActivity(), AppContext.getInstance() - .getLoginUid(), 1); - break; - case R.id.ly_favorite: - UIHelper.showUserFavorite(getActivity(), AppContext.getInstance() - .getLoginUid()); - break; - case R.id.rl_message: - UIHelper.showMyMes(getActivity()); - setNoticeReaded(); - break; - case R.id.rl_team: - UIHelper.showTeamMainActivity(getActivity()); - break; - case R.id.rl_blog: - UIHelper.showUserBlog(getActivity(), AppContext.getInstance() - .getLoginUid()); - break; - case R.id.rl_user_center: - UIHelper.showUserCenter(getActivity(), AppContext.getInstance() - .getLoginUid(), AppContext.getInstance().getLoginUser() - .getName()); - break; - default: - break; - } - } - - private void showMyQrCode() { - MyQrodeDialog dialog = new MyQrodeDialog(getActivity()); - dialog.show(); - } - - @Override - public void initData() {} - - private void setNoticeReaded() { - mMesCount.setText(""); - mMesCount.hide(); - } - -} diff --git a/app/src/main/java/net/oschina/app/fragment/MyInformationFragmentDetail.java b/app/src/main/java/net/oschina/app/fragment/MyInformationFragmentDetail.java deleted file mode 100644 index a47663fa4..000000000 --- a/app/src/main/java/net/oschina/app/fragment/MyInformationFragmentDetail.java +++ /dev/null @@ -1,402 +0,0 @@ -package net.oschina.app.fragment; - -import android.app.Activity; -import android.content.DialogInterface; -import android.content.Intent; -import android.graphics.Bitmap; -import android.net.Uri; -import android.os.Build; -import android.os.Bundle; -import android.os.Environment; -import android.provider.MediaStore; -import android.provider.MediaStore.Images; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseFragment; -import net.oschina.app.bean.MyInformation; -import net.oschina.app.bean.Result; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.bean.User; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.FileUtil; -import net.oschina.app.util.ImageUtils; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; - -import org.kymjs.kjframe.Core; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileNotFoundException; -import java.text.SimpleDateFormat; -import java.util.Date; - -import butterknife.ButterKnife; -import butterknife.InjectView; -import butterknife.OnClick; -import cz.msebera.android.httpclient.Header; - -/** - * 登录用户信息详情 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2015年1月6日 上午10:33:18 - */ - -public class MyInformationFragmentDetail extends BaseFragment { - - public static final int ACTION_TYPE_ALBUM = 0; - public static final int ACTION_TYPE_PHOTO = 1; - - @InjectView(R.id.iv_avatar) - ImageView mUserFace; - - @InjectView(R.id.tv_name) - TextView mName; - - @InjectView(R.id.tv_join_time) - TextView mJoinTime; - - @InjectView(R.id.tv_location) - TextView mFrom; - - @InjectView(R.id.tv_development_platform) - TextView mPlatFrom; - - @InjectView(R.id.tv_academic_focus) - TextView mFocus; - - @InjectView(R.id.error_layout) - EmptyLayout mErrorLayout; - - private User mUser; - - private boolean isChangeFace = false; - - private String theLarge; - - private final static int CROP = 200; - - private final static String FILE_SAVEPATH = Environment - .getExternalStorageDirectory().getAbsolutePath() - + "/OSChina/Portrait/"; - private Uri origUri; - private Uri cropUri; - private File protraitFile; - private Bitmap protraitBitmap; - private String protraitPath; - - private final AsyncHttpResponseHandler mHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - MyInformation user = XmlUtils.toBean(MyInformation.class, - new ByteArrayInputStream(arg2)); - if (user != null && user.getUser() != null) { - mUser = user.getUser(); - fillUI(); - } else { - this.onFailure(arg0, arg1, arg2, null); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - } - - }; - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - ViewGroup view = (ViewGroup) inflater.inflate( - R.layout.fragment_my_information_detail, container, false); - initView(view); - initData(); - return view; - } - - @Override - @OnClick({R.id.iv_avatar, R.id.btn_logout}) - public void onClick(View v) { - switch (v.getId()) { - case R.id.iv_avatar: - showClickAvatar(); - break; - case R.id.btn_logout: - AppContext.getInstance().Logout(); - AppContext.showToastShort(R.string.tip_logout_success); - getActivity().finish(); - break; - default: - break; - } - } - - public void showClickAvatar() { - if (mUser == null) { - AppContext.showToast(""); - return; - } - DialogHelp.getSelectDialog(getActivity(), "选择操作", getResources().getStringArray(R.array.avatar_option), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - if (i == 0) { - handleSelectPicture(); - } else { - UIHelper.showUserAvatar(getActivity(), - mUser.getPortrait()); - } - } - }).show(); - } - - private void handleSelectPicture() { - DialogHelp.getSelectDialog(getActivity(), "选择图片", getResources().getStringArray(R.array.choose_picture), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - goToSelectPicture(i); - } - }).show(); - } - - private void goToSelectPicture(int position) { - switch (position) { - case ACTION_TYPE_ALBUM: - startImagePick(); - break; - case ACTION_TYPE_PHOTO: - startTakePhoto(); - break; - default: - break; - } - } - - @Override - public void initView(View view) { - ButterKnife.inject(this, view); - mErrorLayout.setOnLayoutClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - sendRequiredData(); - } - }); - - mUserFace.setOnClickListener(this); - } - - @Override - public void initData() { - sendRequiredData(); - } - - public void fillUI() { - Core.getKJBitmap().displayWithLoadBitmap(mUserFace, mUser.getPortrait(), - R.drawable.widget_dface); - mName.setText(mUser.getName()); - mJoinTime.setText(StringUtils.friendly_time(mUser.getJointime())); - mFrom.setText(mUser.getFrom()); - mPlatFrom.setText(mUser.getDevplatform()); - mFocus.setText(mUser.getExpertise()); - } - - public void sendRequiredData() { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - OSChinaApi.getMyInformation(AppContext.getInstance().getLoginUid(), - mHandler); - } - - /** - * 上传新照片 - */ - private void uploadNewPhoto() { - showWaitDialog("正在上传头像..."); - - // 获取头像缩略图 - if (!StringUtils.isEmpty(protraitPath) && protraitFile.exists()) { - protraitBitmap = ImageUtils - .loadImgThumbnail(protraitPath, 200, 200); - } else { - AppContext.showToast("图像不存在,上传失败"); - } - if (protraitBitmap != null) { - - try { - OSChinaApi.updatePortrait(AppContext.getInstance() - .getLoginUid(), protraitFile, - new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, - byte[] arg2) { - Result res = XmlUtils.toBean(ResultBean.class, - new ByteArrayInputStream(arg2)) - .getResult(); - if (res.OK()) { - AppContext.showToast("更换成功"); - // 显示新头像 - mUserFace.setImageBitmap(protraitBitmap); - isChangeFace = true; - } else { - AppContext.showToast(res.getErrorMessage()); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, - byte[] arg2, Throwable arg3) { - AppContext.showToast("更换头像失败"); - } - - @Override - public void onFinish() { - hideWaitDialog(); - } - }); - } catch (FileNotFoundException e) { - AppContext.showToast("图像不存在,上传失败"); - } - } - } - - /** - * 选择图片裁剪 - */ - private void startImagePick() { - Intent intent; - if (Build.VERSION.SDK_INT < 19) { - intent = new Intent(); - intent.setAction(Intent.ACTION_GET_CONTENT); - intent.setType("image/*"); - startActivityForResult(Intent.createChooser(intent, "选择图片"), - ImageUtils.REQUEST_CODE_GETIMAGE_BYCROP); - } else { - intent = new Intent(Intent.ACTION_PICK, - Images.Media.EXTERNAL_CONTENT_URI); - intent.setType("image/*"); - startActivityForResult(Intent.createChooser(intent, "选择图片"), - ImageUtils.REQUEST_CODE_GETIMAGE_BYCROP); - } - } - - private void startTakePhoto() { - Intent intent; - // 判断是否挂载了SD卡 - String savePath = ""; - String storageState = Environment.getExternalStorageState(); - if (storageState.equals(Environment.MEDIA_MOUNTED)) { - savePath = Environment.getExternalStorageDirectory() - .getAbsolutePath() + "/oschina/Camera/"; - File savedir = new File(savePath); - if (!savedir.exists()) { - savedir.mkdirs(); - } - } - - // 没有挂载SD卡,无法保存文件 - if (StringUtils.isEmpty(savePath)) { - AppContext.showToastShort("无法保存照片,请检查SD卡是否挂载"); - return; - } - - String timeStamp = new SimpleDateFormat("yyyyMMddHHmmss") - .format(new Date()); - String fileName = "osc_" + timeStamp + ".jpg";// 照片命名 - File out = new File(savePath, fileName); - Uri uri = Uri.fromFile(out); - origUri = uri; - - theLarge = savePath + fileName;// 该照片的绝对路径 - - intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); - startActivityForResult(intent, - ImageUtils.REQUEST_CODE_GETIMAGE_BYCAMERA); - } - - // 裁剪头像的绝对路径 - private Uri getUploadTempFile(Uri uri) { - String storageState = Environment.getExternalStorageState(); - if (storageState.equals(Environment.MEDIA_MOUNTED)) { - File savedir = new File(FILE_SAVEPATH); - if (!savedir.exists()) { - savedir.mkdirs(); - } - } else { - AppContext.showToast("无法保存上传的头像,请检查SD卡是否挂载"); - return null; - } - String timeStamp = new SimpleDateFormat("yyyyMMddHHmmss") - .format(new Date()); - String thePath = ImageUtils.getAbsolutePathFromNoStandardUri(uri); - - // 如果是标准Uri - if (StringUtils.isEmpty(thePath)) { - thePath = ImageUtils.getAbsoluteImagePath(getActivity(), uri); - } - String ext = FileUtil.getFileFormat(thePath); - ext = StringUtils.isEmpty(ext) ? "jpg" : ext; - // 照片命名 - String cropFileName = "osc_crop_" + timeStamp + "." + ext; - // 裁剪头像的绝对路径 - protraitPath = FILE_SAVEPATH + cropFileName; - protraitFile = new File(protraitPath); - - cropUri = Uri.fromFile(protraitFile); - return this.cropUri; - } - - /** - * 拍照后裁剪 - * - * @param data 原始图片 - */ - private void startActionCrop(Uri data) { - Intent intent = new Intent("com.android.camera.action.CROP"); - intent.setDataAndType(data, "image/*"); - intent.putExtra("output", this.getUploadTempFile(data)); - intent.putExtra("crop", "true"); - intent.putExtra("aspectX", 1);// 裁剪框比例 - intent.putExtra("aspectY", 1); - intent.putExtra("outputX", CROP);// 输出图片大小 - intent.putExtra("outputY", CROP); - intent.putExtra("scale", true);// 去黑边 - intent.putExtra("scaleUpIfNeeded", true);// 去黑边 - startActivityForResult(intent, - ImageUtils.REQUEST_CODE_GETIMAGE_BYSDCARD); - } - - @Override - public void onActivityResult(final int requestCode, final int resultCode, - final Intent imageReturnIntent) { - if (resultCode != Activity.RESULT_OK) - return; - - switch (requestCode) { - case ImageUtils.REQUEST_CODE_GETIMAGE_BYCAMERA: - startActionCrop(origUri);// 拍照后裁剪 - break; - case ImageUtils.REQUEST_CODE_GETIMAGE_BYCROP: - startActionCrop(imageReturnIntent.getData());// 选图后裁剪 - break; - case ImageUtils.REQUEST_CODE_GETIMAGE_BYSDCARD: - uploadNewPhoto(); - break; - } - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/NewsDetailFragment.java b/app/src/main/java/net/oschina/app/fragment/NewsDetailFragment.java deleted file mode 100644 index b574db747..000000000 --- a/app/src/main/java/net/oschina/app/fragment/NewsDetailFragment.java +++ /dev/null @@ -1,127 +0,0 @@ -package net.oschina.app.fragment; - -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.CommonDetailFragment; -import net.oschina.app.bean.CommentList; -import net.oschina.app.bean.FavoriteList; -import net.oschina.app.bean.News; -import net.oschina.app.bean.NewsDetail; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.ThemeSwitchUtils; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; - -import java.io.InputStream; - -/** - * Created by 火蚁 on 15/5/25. - */ -public class NewsDetailFragment extends CommonDetailFragment { - - @Override - protected String getCacheKey() { - return "news_" + mId; - } - - @Override - protected void sendRequestDataForNet() { - OSChinaApi.getNewsDetail(mId, mDetailHeandler); - } - - @Override - protected News parseData(InputStream is) { - return XmlUtils.toBean(NewsDetail.class, is).getNews(); - } - - @Override - protected String getWebViewBody(News detail) { - StringBuffer body = new StringBuffer(); - body.append(UIHelper.WEB_STYLE).append(UIHelper.WEB_LOAD_IMAGES); - body.append(ThemeSwitchUtils.getWebViewBodyString()); - // 添加title - body.append(String.format("
%s
", mDetail.getTitle())); - // 添加作者和时间 - String time = StringUtils.friendly_time(mDetail.getPubDate()); - String author = String.format("%s", mDetail.getAuthorId(), mDetail.getAuthor()); - body.append(String.format("
%s    %s
", author, time)); - // 添加图片点击放大支持 - body.append(UIHelper.setHtmlCotentSupportImagePreview(mDetail.getBody())); - - - // 更多关于***软件的信息 - String softwareName = mDetail.getSoftwareName(); - String softwareLink = mDetail.getSoftwareLink(); - if (!StringUtils.isEmpty(softwareName) - && !StringUtils.isEmpty(softwareLink)) - body.append(String - .format("
更多关于: %s 的详细信息
", - softwareLink, softwareName)); - - // 相关新闻 - if (mDetail != null && mDetail.getRelatives() != null - && mDetail.getRelatives().size() > 0) { - String strRelative = ""; - for (News.Relative relative : mDetail.getRelatives()) { - strRelative += String.format( - "
  • %s
  • ", - relative.url, relative.title); - } - body.append("

    " - + String.format("
    相关资讯
      %s
    ", - strRelative)); - } - body.append("
    "); - // 封尾 - body.append("
    "); - return body.toString(); - } - - @Override - protected void showCommentView() { - if (mDetail != null) - UIHelper.showComment(getActivity(), mId, - CommentList.CATALOG_NEWS); - } - - @Override - protected int getCommentType() { - return CommentList.CATALOG_NEWS; - } - - @Override - protected int getFavoriteTargetType() { - return FavoriteList.TYPE_NEWS; - } - - @Override - protected String getShareTitle() { - return mDetail.getTitle(); - } - - @Override - protected String getShareContent() { - return StringUtils.getSubString(0, 55, - getFilterHtmlBody(mDetail.getBody())); - } - - @Override - protected String getShareUrl() { - return mDetail.getUrl().replace("http://www", "http://m"); - } - - @Override - protected int getFavoriteState() { - return mDetail.getFavorite(); - } - - @Override - protected void updateFavoriteChanged(int newFavoritedState) { - mDetail.setFavorite(newFavoritedState); - saveCache(mDetail); - } - - @Override - protected int getCommentCount() { - return mDetail.getCommentCount(); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/NewsFragment.java b/app/src/main/java/net/oschina/app/fragment/NewsFragment.java deleted file mode 100644 index c52d3a57b..000000000 --- a/app/src/main/java/net/oschina/app/fragment/NewsFragment.java +++ /dev/null @@ -1,106 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; -import java.util.List; - -import net.oschina.app.adapter.NewsAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.News; -import net.oschina.app.bean.NewsList; -import net.oschina.app.interf.OnTabReselectListener; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import android.view.View; -import android.widget.AdapterView; - -/** - * 新闻资讯 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年11月12日 下午4:17:45 - * - */ -public class NewsFragment extends BaseListFragment implements - OnTabReselectListener { - - protected static final String TAG = NewsFragment.class.getSimpleName(); - private static final String CACHE_KEY_PREFIX = "newslist_"; - - @Override - protected NewsAdapter getListAdapter() { - return new NewsAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX + mCatalog; - } - - @Override - protected NewsList parseList(InputStream is) throws Exception { - NewsList list = null; - try { - list = XmlUtils.toBean(NewsList.class, is); - } catch (NullPointerException e) { - list = new NewsList(); - } - return list; - } - - @Override - protected NewsList readList(Serializable seri) { - return ((NewsList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getNewsList(mCatalog, mCurrentPage, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - News news = mAdapter.getItem(position); - if (news != null) { - UIHelper.showNewsRedirect(view.getContext(), news); - - // 放入已读列表 - saveToReadedList(view, NewsList.PREF_READED_NEWS_LIST, news.getId() - + ""); - } - } - - @Override - protected void executeOnLoadDataSuccess(List data) { - if (mCatalog == NewsList.CATALOG_WEEK - || mCatalog == NewsList.CATALOG_MONTH) { - mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - if (mState == STATE_REFRESH) - mAdapter.clear(); - mAdapter.addData(data); - mState = STATE_NOMORE; - mAdapter.setState(ListBaseAdapter.STATE_NO_MORE); - return; - } - super.executeOnLoadDataSuccess(data); - } - - @Override - public void onTabReselect() { - onRefresh(); - } - - @Override - protected long getAutoRefreshTime() { - // 最新资讯两小时刷新一次 - if (mCatalog == NewsList.CATALOG_ALL) { - - return 2 * 60 * 60; - } - return super.getAutoRefreshTime(); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/PostDetailFragment.java b/app/src/main/java/net/oschina/app/fragment/PostDetailFragment.java deleted file mode 100644 index fe4e6ede8..000000000 --- a/app/src/main/java/net/oschina/app/fragment/PostDetailFragment.java +++ /dev/null @@ -1,129 +0,0 @@ -package net.oschina.app.fragment; - -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.CommonDetailFragment; -import net.oschina.app.bean.CommentList; -import net.oschina.app.bean.FavoriteList; -import net.oschina.app.bean.Post; -import net.oschina.app.bean.PostDetail; -import net.oschina.app.ui.DetailActivity; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.ThemeSwitchUtils; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.URLsUtils; -import net.oschina.app.util.XmlUtils; - -import java.io.InputStream; -import java.net.URLEncoder; - -/** - * Created by 火蚁 on 15/5/25. - */ -public class PostDetailFragment extends CommonDetailFragment { - @Override - protected String getCacheKey() { - return "post_" + mId; - } - - @Override - protected void sendRequestDataForNet() { - OSChinaApi.getPostDetail(mId, mDetailHeandler); - } - - @Override - protected Post parseData(InputStream is) { - return XmlUtils.toBean(PostDetail.class, is).getPost(); - } - - @Override - protected String getWebViewBody(Post detail) { - StringBuffer body = new StringBuffer(); - body.append(UIHelper.WEB_STYLE).append(UIHelper.WEB_LOAD_IMAGES); - body.append(ThemeSwitchUtils.getWebViewBodyString()); - // 添加title - body.append(String.format("
    %s
    ", mDetail.getTitle())); - // 添加作者和时间 - String time = StringUtils.friendly_time(mDetail.getPubDate()); - String author = String.format("%s", mDetail.getAuthorId(), mDetail.getAuthor()); - body.append(String.format("
    %s    %s
    ", author, time)); - // 添加图片点击放大支持 - body.append(UIHelper.setHtmlCotentSupportImagePreview(mDetail.getBody())); - body.append(getPostTags(mDetail.getTags())); - // 封尾 - body.append(""); - return body.toString(); - } - - @SuppressWarnings("deprecation") - private String getPostTags(Post.Tags taglist) { - if (taglist == null) - return ""; - StringBuffer tags = new StringBuffer(); - for (String tag : taglist.getTags()) { - tags.append(String - .format(" %s   ", - URLEncoder.encode(tag), tag)); - } - return String.format("
    %s
    ", tags); - } - - @Override - protected void showCommentView() { - if (mDetail != null) { - UIHelper.showComment(getActivity(), mId, CommentList.CATALOG_POST); - } - } - - @Override - protected int getCommentType() { - return CommentList.CATALOG_POST; - } - - @Override - protected String getShareTitle() { - return mDetail.getTitle(); - } - - @Override - protected String getShareContent() { - return StringUtils.getSubString(0, 55, - getFilterHtmlBody(mDetail.getBody())); - } - - @Override - protected String getShareUrl() { - return String.format(URLsUtils.URL_MOBILE + "question/%s_%s", mDetail.getAuthorId(), mId); - } - - @Override - protected int getFavoriteTargetType() { - return FavoriteList.TYPE_POST; - } - - @Override - protected int getFavoriteState() { - return mDetail.getFavorite(); - } - - @Override - protected void updateFavoriteChanged(int newFavoritedState) { - mDetail.setFavorite(newFavoritedState); - saveCache(mDetail); - } - - @Override - protected int getCommentCount() { - return mDetail.getAnswerCount(); - } - - @Override - public void onResume() { - super.onResume(); - ((DetailActivity) getActivity()).toolFragment.showReportButton(); - } - - @Override - protected String getRepotrUrl() { - return mDetail.getUrl(); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/PostsFragment.java b/app/src/main/java/net/oschina/app/fragment/PostsFragment.java deleted file mode 100644 index 039397931..000000000 --- a/app/src/main/java/net/oschina/app/fragment/PostsFragment.java +++ /dev/null @@ -1,64 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; - -import net.oschina.app.adapter.PostAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Post; -import net.oschina.app.bean.PostList; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import android.view.View; -import android.widget.AdapterView; - -/** - * 问答 - * - * @author william_sim - */ -public class PostsFragment extends BaseListFragment { - - protected static final String TAG = PostsFragment.class.getSimpleName(); - private static final String CACHE_KEY_PREFIX = "postslist_"; - - @Override - protected PostAdapter getListAdapter() { - return new PostAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX + mCatalog; - } - - @Override - protected PostList parseList(InputStream is) throws Exception { - PostList list = XmlUtils.toBean(PostList.class, is); - return list; - } - - @Override - protected PostList readList(Serializable seri) { - return ((PostList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getPostList(mCatalog, mCurrentPage, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - Post post = mAdapter.getItem(position); - if (post != null) { - UIHelper.showPostDetail(view.getContext(), post.getId(), - post.getAnswerCount()); - // 放入已读列表 - saveToReadedList(view, PostList.PREF_READED_POST_LIST, post.getId() - + ""); - } - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/QuestionTagFragment.java b/app/src/main/java/net/oschina/app/fragment/QuestionTagFragment.java deleted file mode 100644 index 7f002b30d..000000000 --- a/app/src/main/java/net/oschina/app/fragment/QuestionTagFragment.java +++ /dev/null @@ -1,79 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; - -import net.oschina.app.R; -import net.oschina.app.adapter.PostAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseActivity; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Post; -import net.oschina.app.bean.PostList; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; - -/** - * 标签相关帖子 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年11月6日 下午3:39:07 - * - */ -public class QuestionTagFragment extends BaseListFragment { - - public static final String BUNDLE_KEY_TAG = "BUNDLE_KEY_TAG"; - protected static final String TAG = QuestionTagFragment.class - .getSimpleName(); - private static final String CACHE_KEY_PREFIX = "post_tag_"; - private String mTag; - - @Override - public void onCreate(android.os.Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Bundle args = getArguments(); - if (args != null) { - mTag = args.getString(BUNDLE_KEY_TAG); - ((BaseActivity) getActivity()).setActionBarTitle(getString( - R.string.actionbar_title_question_tag, mTag)); - } - } - - @Override - protected PostAdapter getListAdapter() { - return new PostAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return new StringBuffer(CACHE_KEY_PREFIX).append(mTag).toString(); - } - - @Override - protected PostList parseList(InputStream is) throws Exception { - PostList list = XmlUtils.toBean(PostList.class, is); - return list; - } - - @Override - protected PostList readList(Serializable seri) { - return ((PostList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getPostListByTag(mTag, mCurrentPage, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - Post post = mAdapter.getItem(position); - if (post != null) - UIHelper.showPostDetail(view.getContext(), post.getId(), - post.getAnswerCount()); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/SearchFragment.java b/app/src/main/java/net/oschina/app/fragment/SearchFragment.java deleted file mode 100644 index 3b9055ab0..000000000 --- a/app/src/main/java/net/oschina/app/fragment/SearchFragment.java +++ /dev/null @@ -1,93 +0,0 @@ -package net.oschina.app.fragment; - -import android.os.Bundle; -import android.view.View; -import android.view.WindowManager; -import android.widget.AdapterView; - -import net.oschina.app.adapter.SearchAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.SearchList; -import net.oschina.app.bean.SearchResult; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; - -import java.io.InputStream; -import java.io.Serializable; - -public class SearchFragment extends BaseListFragment { - protected static final String TAG = SearchFragment.class.getSimpleName(); - private static final String CACHE_KEY_PREFIX = "search_list_"; - private String mCatalog; - private String mSearch; - private boolean mRquestDataIfCreated = false; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Bundle args = getArguments(); - if (args != null) { - mCatalog = args.getString(BUNDLE_KEY_CATALOG); - } - int mode = WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN - | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN; - getActivity().getWindow().setSoftInputMode(mode); - } - - public void search(String search) { - mSearch = search; - if (mErrorLayout != null) { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - mState = STATE_REFRESH; - requestData(true); - } else { - mRquestDataIfCreated = true; - } - } - - @Override - protected boolean requestDataIfViewCreated() { - return mRquestDataIfCreated; - } - - @Override - protected SearchAdapter getListAdapter() { - return new SearchAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX + mCatalog + mSearch; - } - - @Override - protected SearchList parseList(InputStream is) throws Exception { - SearchList list = XmlUtils.toBean(SearchList.class, is); - return list; - } - - @Override - protected SearchList readList(Serializable seri) { - return ((SearchList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getSearchList(mCatalog, mSearch, mCurrentPage, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - SearchResult res = mAdapter.getItem(position); - if (res != null) { - if (res.getType().equalsIgnoreCase(SearchList.CATALOG_SOFTWARE)) { - UIHelper.showSoftwareDetailById(getActivity(), res.getId()); - } else { - UIHelper.showUrlRedirect(getActivity(), res.getUrl()); - } - } - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/SettingsFragment.java b/app/src/main/java/net/oschina/app/fragment/SettingsFragment.java deleted file mode 100644 index 9df9372bd..000000000 --- a/app/src/main/java/net/oschina/app/fragment/SettingsFragment.java +++ /dev/null @@ -1,174 +0,0 @@ -package net.oschina.app.fragment; - -import android.content.DialogInterface; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import net.oschina.app.AppConfig; -import net.oschina.app.AppContext; -import net.oschina.app.AppManager; -import net.oschina.app.R; -import net.oschina.app.base.BaseFragment; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.FileUtil; -import net.oschina.app.util.MethodsCompat; -import net.oschina.app.util.UIHelper; -import net.oschina.app.widget.togglebutton.ToggleButton; -import net.oschina.app.widget.togglebutton.ToggleButton.OnToggleChanged; - -import org.kymjs.kjframe.http.HttpConfig; - -import java.io.File; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 系统设置界面 - * - * @author kymjs - */ -public class SettingsFragment extends BaseFragment { - - @InjectView(R.id.tb_loading_img) - ToggleButton mTbLoadImg; - @InjectView(R.id.tv_cache_size) - TextView mTvCacheSize; - @InjectView(R.id.setting_logout) - TextView mTvExit; - @InjectView(R.id.tb_double_click_exit) - ToggleButton mTbDoubleClickExit; - - @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_settings, container, - false); - ButterKnife.inject(this, view); - initView(view); - initData(); - return view; - } - - @Override - public void initView(View view) { - mTbLoadImg.setOnToggleChanged(new OnToggleChanged() { - @Override - public void onToggle(boolean on) { - AppContext.setLoadImage(on); - } - }); - - mTbDoubleClickExit.setOnToggleChanged(new OnToggleChanged() { - @Override - public void onToggle(boolean on) { - AppContext.set(AppConfig.KEY_DOUBLE_CLICK_EXIT, on); - } - }); - - view.findViewById(R.id.rl_loading_img).setOnClickListener(this); - view.findViewById(R.id.rl_notification_settings).setOnClickListener( - this); - view.findViewById(R.id.rl_clean_cache).setOnClickListener(this); - view.findViewById(R.id.rl_double_click_exit).setOnClickListener(this); - view.findViewById(R.id.rl_about).setOnClickListener(this); - view.findViewById(R.id.rl_exit).setOnClickListener(this); - - if (!AppContext.getInstance().isLogin()) { - mTvExit.setText("退出"); - } - } - - @Override - public void initData() { - if (AppContext.get(AppConfig.KEY_LOAD_IMAGE, true)) { - mTbLoadImg.setToggleOn(); - } else { - mTbLoadImg.setToggleOff(); - } - - if (AppContext.get(AppConfig.KEY_DOUBLE_CLICK_EXIT, true)) { - mTbDoubleClickExit.setToggleOn(); - } else { - mTbDoubleClickExit.setToggleOff(); - } - - caculateCacheSize(); - } - - /** - * 计算缓存的大小 - */ - private void caculateCacheSize() { - long fileSize = 0; - String cacheSize = "0KB"; - File filesDir = getActivity().getFilesDir(); - File cacheDir = getActivity().getCacheDir(); - - fileSize += FileUtil.getDirSize(filesDir); - fileSize += FileUtil.getDirSize(cacheDir); - // 2.2版本才有将应用缓存转移到sd卡的功能 - if (AppContext.isMethodsCompat(android.os.Build.VERSION_CODES.FROYO)) { - File externalCacheDir = MethodsCompat - .getExternalCacheDir(getActivity()); - fileSize += FileUtil.getDirSize(externalCacheDir); - fileSize += FileUtil.getDirSize(new File( - org.kymjs.kjframe.utils.FileUtils.getSDCardPath() - + File.separator + HttpConfig.CACHEPATH)); - } - if (fileSize > 0) - cacheSize = FileUtil.formatFileSize(fileSize); - mTvCacheSize.setText(cacheSize); - } - - @Override - public void onClick(View v) { - final int id = v.getId(); - switch (id) { - case R.id.rl_loading_img: - mTbLoadImg.toggle(); - break; - case R.id.rl_notification_settings: - UIHelper.showSettingNotification(getActivity()); - break; - case R.id.rl_clean_cache: - onClickCleanCache(); - break; - case R.id.rl_double_click_exit: - mTbDoubleClickExit.toggle(); - break; - case R.id.rl_about: - UIHelper.showAboutOSC(getActivity()); - break; - case R.id.rl_exit: - onClickExit(); - break; - default: - break; - } - - } - - private void onClickCleanCache() { - DialogHelp.getConfirmDialog(getActivity(), "是否清空缓存?", new DialogInterface.OnClickListener - () { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - UIHelper.clearAppCache(getActivity()); - mTvCacheSize.setText("0KB"); - } - }).show(); - } - - private void onClickExit() { - AppContext - .set(AppConfig.KEY_NOTIFICATION_DISABLE_WHEN_EXIT, - false); - AppManager.getAppManager().AppExit(getActivity()); - getActivity().finish(); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/SettingsNotificationFragment.java b/app/src/main/java/net/oschina/app/fragment/SettingsNotificationFragment.java deleted file mode 100644 index 11a22e4d6..000000000 --- a/app/src/main/java/net/oschina/app/fragment/SettingsNotificationFragment.java +++ /dev/null @@ -1,90 +0,0 @@ -package net.oschina.app.fragment; - -import net.oschina.app.AppConfig; -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.base.BaseFragment; -import net.oschina.app.widget.togglebutton.ToggleButton; -import net.oschina.app.widget.togglebutton.ToggleButton.OnToggleChanged; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import butterknife.ButterKnife; -import butterknife.InjectView; - -public class SettingsNotificationFragment extends BaseFragment { - - @InjectView(R.id.tb_accept) ToggleButton mTbAccept; - @InjectView(R.id.tb_voice) ToggleButton mTbVoice; - @InjectView(R.id.tb_vibration) ToggleButton mTbVibration; - @InjectView(R.id.tb_app_exit) ToggleButton mTbAppExit; - - @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_settings_notifcation, container, - false); - ButterKnife.inject(this, view); - initView(view); - initData(); - return view; - } - - @Override - public void initView(View view) { - setToggleChanged(mTbAccept, AppConfig.KEY_NOTIFICATION_ACCEPT); - setToggleChanged(mTbVoice, AppConfig.KEY_NOTIFICATION_SOUND); - setToggleChanged(mTbVibration, AppConfig.KEY_NOTIFICATION_VIBRATION); - setToggleChanged(mTbAppExit, AppConfig.KEY_NOTIFICATION_DISABLE_WHEN_EXIT); - - view.findViewById(R.id.rl_accept).setOnClickListener(this); - view.findViewById(R.id.rl_voice).setOnClickListener(this); - view.findViewById(R.id.rl_vibration).setOnClickListener(this); - view.findViewById(R.id.rl_app_exit).setOnClickListener(this); - } - - public void initData() { - setToggle(AppContext.get(AppConfig.KEY_NOTIFICATION_ACCEPT, true), mTbAccept); - setToggle(AppContext.get(AppConfig.KEY_NOTIFICATION_SOUND, true), mTbVoice); - setToggle(AppContext.get(AppConfig.KEY_NOTIFICATION_VIBRATION, true), mTbVibration); - setToggle(AppContext.get(AppConfig.KEY_NOTIFICATION_DISABLE_WHEN_EXIT, true), mTbAppExit); - } - - private void setToggleChanged(ToggleButton tb, final String key) { - tb.setOnToggleChanged(new OnToggleChanged() { - - @Override - public void onToggle(boolean on) { - AppContext.set(key, on); - } - }); - } - - private void setToggle(boolean value, ToggleButton tb) { - if (value) - tb.setToggleOn(); - else - tb.setToggleOff(); - } - - @Override - public void onClick(View v) { - final int id = v.getId(); - switch (id) { - case R.id.rl_accept: - mTbAccept.toggle(); - break; - case R.id.rl_voice: - mTbVoice.toggle(); - break; - case R.id.rl_vibration: - mTbVibration.toggle(); - break; - case R.id.rl_app_exit: - mTbAppExit.toggle(); - break; - } - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/SoftWareTweetsFrament.java b/app/src/main/java/net/oschina/app/fragment/SoftWareTweetsFrament.java deleted file mode 100644 index 067b922ac..000000000 --- a/app/src/main/java/net/oschina/app/fragment/SoftWareTweetsFrament.java +++ /dev/null @@ -1,116 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.adapter.TweetAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseActivity; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Tweet; -import net.oschina.app.bean.TweetsList; -import net.oschina.app.service.ServerTaskUtils; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import android.app.Activity; -import android.os.Bundle; -import android.view.View; -import android.view.WindowManager; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemLongClickListener; - -public class SoftWareTweetsFrament extends BaseListFragment implements - OnItemLongClickListener { - - public static final String BUNDLE_KEY_ID = "BUNDLE_KEY_ID"; - protected static final String TAG = SoftWareTweetsFrament.class - .getSimpleName(); - private static final String CACHE_KEY_PREFIX = "software_tweet_list"; - - private int mId; - - @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - BaseActivity act = ((BaseActivity) activity); - try { - activity.findViewById(R.id.emoji_container).setVisibility( - View.VISIBLE); - } catch (NullPointerException e) { - } - } - - protected int getLayoutRes() { - return R.layout.fragment_pull_refresh_listview; - } - - @Override - public void initView(View view) { - super.initView(view); - mListView.setOnItemLongClickListener(this); - } - - @Override - public void onCreate(android.os.Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Bundle args = getArguments(); - if (args != null) { - mId = args.getInt(BUNDLE_KEY_ID, 0); - } - - int mode = WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN - | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE; - getActivity().getWindow().setSoftInputMode(mode); - } - - @Override - protected TweetAdapter getListAdapter() { - return new TweetAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return new StringBuilder(CACHE_KEY_PREFIX).append("_").append(mId) - .toString(); - } - - @Override - protected TweetsList parseList(InputStream is) throws Exception { - return XmlUtils.toBean(TweetsList.class, is); - } - - @Override - protected TweetsList readList(Serializable seri) { - return ((TweetsList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getSoftTweetList(mId, mCurrentPage, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - final Tweet tweet = mAdapter.getItem(position); - if (tweet == null) { - return; - } - UIHelper.showTweetDetail(parent.getContext(), tweet, tweet.getId()); - } - - private void handleComment(String text) { - Tweet tweet = new Tweet(); - tweet.setAuthorid(AppContext.getInstance().getLoginUid()); - tweet.setBody(text); - ServerTaskUtils.pubSoftWareTweet(getActivity(), tweet, mId); - } - - @Override - public boolean onItemLongClick(AdapterView parent, View view, - int position, long id) { - return true; - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/SoftwareCatalogListFragment.java b/app/src/main/java/net/oschina/app/fragment/SoftwareCatalogListFragment.java deleted file mode 100644 index d2eae8152..000000000 --- a/app/src/main/java/net/oschina/app/fragment/SoftwareCatalogListFragment.java +++ /dev/null @@ -1,329 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.ByteArrayInputStream; -import java.util.List; - -import net.oschina.app.R; -import net.oschina.app.adapter.SoftwareAdapter; -import net.oschina.app.adapter.SoftwareCatalogListAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseFragment; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Entity; -import net.oschina.app.bean.SoftwareCatalogList; -import net.oschina.app.bean.SoftwareCatalogList.SoftwareType; -import net.oschina.app.bean.SoftwareDec; -import net.oschina.app.bean.SoftwareList; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import net.oschina.app.widget.ScrollLayout; - -import cz.msebera.android.httpclient.Header; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AbsListView; -import android.widget.AbsListView.OnScrollListener; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.ListView; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -public class SoftwareCatalogListFragment extends BaseFragment implements - OnItemClickListener, OnScrollListener { - protected static final int STATE_NONE = 0; - protected static final int STATE_REFRESH = 1; - protected static final int STATE_LOADMORE = 2; - - private final static int SCREEN_CATALOG = 0; - private final static int SCREEN_TAG = 1; - private final static int SCREEN_SOFTWARE = 2; - - private static ScrollLayout mScrollLayout; - private static ListView mLvCatalog, mLvTag, mLvSoftware; - private static EmptyLayout mEmptyView; - private static SoftwareCatalogListAdapter mCatalogAdapter, mTagAdapter; - private static SoftwareAdapter mSoftwareAdapter; - private static int mState = STATE_NONE; - private static int curScreen = SCREEN_CATALOG;// 默认当前屏幕 - private static int mCurrentTag; - private static int mCurrentPage; - - private AsyncHttpResponseHandler mCatalogHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - SoftwareCatalogList list = XmlUtils.toBean( - SoftwareCatalogList.class, new ByteArrayInputStream( - arg2)); - if (mState == STATE_REFRESH) - mCatalogAdapter.clear(); - List data = list.getSoftwarecataloglist(); - mCatalogAdapter.addData(data); - mEmptyView.setErrorType(EmptyLayout.HIDE_LAYOUT); - if (data.size() == 0 && mState == STATE_REFRESH) { - mEmptyView.setErrorType(EmptyLayout.NODATA); - } else { - mCatalogAdapter - .setState(ListBaseAdapter.STATE_LESS_ONE_PAGE); - } - } catch (Exception e) { - e.printStackTrace(); - onFailure(arg0, arg1, arg2, e); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - mEmptyView.setErrorType(EmptyLayout.NETWORK_ERROR); - } - - public void onFinish() { - mState = STATE_NONE; - } - }; - - private AsyncHttpResponseHandler mTagHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - SoftwareCatalogList list = XmlUtils.toBean( - SoftwareCatalogList.class, new ByteArrayInputStream( - arg2)); - if (mState == STATE_REFRESH) - mTagAdapter.clear(); - List data = list.getSoftwarecataloglist(); - mTagAdapter.addData(data); - mEmptyView.setErrorType(EmptyLayout.HIDE_LAYOUT); - if (data.size() == 0 && mState == STATE_REFRESH) { - mEmptyView.setErrorType(EmptyLayout.NODATA); - } else { - mTagAdapter.setState(ListBaseAdapter.STATE_LESS_ONE_PAGE); - } - } catch (Exception e) { - e.printStackTrace(); - onFailure(arg0, arg1, arg2, e); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - mEmptyView.setErrorType(EmptyLayout.NETWORK_ERROR); - } - - public void onFinish() { - mState = STATE_NONE; - } - }; - - private AsyncHttpResponseHandler mSoftwareHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int statusCode, Header[] headers, - byte[] responseBytes) { - try { - SoftwareList list = XmlUtils.toBean(SoftwareList.class, - new ByteArrayInputStream(responseBytes)); - executeOnLoadDataSuccess(list.getSoftwarelist()); - - } catch (Exception e) { - e.printStackTrace(); - onFailure(statusCode, headers, responseBytes, null); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - mEmptyView.setErrorType(EmptyLayout.NETWORK_ERROR); - } - - public void onFinish() { - mState = STATE_NONE; - } - }; - - private OnItemClickListener mCatalogOnItemClick = new OnItemClickListener() { - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - SoftwareType type = (SoftwareType) mCatalogAdapter - .getItem(position); - if (type != null && type.getTag() > 0) { - // 加载二级分类 - curScreen = SCREEN_TAG; - mScrollLayout.scrollToScreen(curScreen); - mCurrentTag = type.getTag(); - sendRequestCatalogData(mTagHandler); - } - } - }; - - private OnItemClickListener mTagOnItemClick = new OnItemClickListener() { - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - SoftwareType type = (SoftwareType) mTagAdapter.getItem(position); - if (type != null && type.getTag() > 0) { - // 加载二级分类里面的软件列表 - curScreen = SCREEN_SOFTWARE; - mScrollLayout.scrollToScreen(curScreen); - mCurrentTag = type.getTag(); - mState = STATE_REFRESH; - sendRequestTagData(); - } - } - }; - - @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_opensoftware, container, - false); - initViews(view); - return view; - } - - private void initViews(View view) { - mScrollLayout = (ScrollLayout) view.findViewById(R.id.scrolllayout); - mScrollLayout.setIsScroll(false); - - mEmptyView = (EmptyLayout) view.findViewById(R.id.error_layout); - mLvCatalog = (ListView) view.findViewById(R.id.lv_catalog); - mLvCatalog.setOnItemClickListener(mCatalogOnItemClick); - mLvTag = (ListView) view.findViewById(R.id.lv_tag); - mLvTag.setOnItemClickListener(mTagOnItemClick); - if (mCatalogAdapter == null) { - mCatalogAdapter = new SoftwareCatalogListAdapter(); - sendRequestCatalogData(mCatalogHandler); - } - mLvCatalog.setAdapter(mCatalogAdapter); - - if (mTagAdapter == null) { - mTagAdapter = new SoftwareCatalogListAdapter(); - } - mLvTag.setAdapter(mTagAdapter); - - if (mSoftwareAdapter == null) { - mSoftwareAdapter = new SoftwareAdapter(); - } - - mLvSoftware = (ListView) view.findViewById(R.id.lv_software); - mLvSoftware.setOnItemClickListener(this); - mLvSoftware.setOnScrollListener(this); - mLvSoftware.setAdapter(mSoftwareAdapter); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - SoftwareDec software = (SoftwareDec) mSoftwareAdapter.getItem(position); - if (software != null) - UIHelper.showUrlRedirect(view.getContext(), software.getUrl()); - } - - @Override - public boolean onBackPressed() { - mEmptyView.setErrorType(EmptyLayout.HIDE_LAYOUT); - mCurrentPage = 0; - switch (curScreen) { - case SCREEN_SOFTWARE: - curScreen = SCREEN_TAG; - mScrollLayout.scrollToScreen(SCREEN_TAG); - return true; - case SCREEN_TAG: - curScreen = SCREEN_CATALOG; - mScrollLayout.scrollToScreen(SCREEN_CATALOG); - return true; - case SCREEN_CATALOG: - return false; - } - return super.onBackPressed(); - } - - private void sendRequestCatalogData(AsyncHttpResponseHandler handler) { - mState = STATE_REFRESH; - mEmptyView.setErrorType(EmptyLayout.NETWORK_LOADING); - OSChinaApi.getSoftwareCatalogList(mCurrentTag, handler); - } - - private void sendRequestTagData() { - OSChinaApi.getSoftwareTagList(mCurrentTag, mCurrentPage, - mSoftwareHandler); - } - - private void executeOnLoadDataSuccess(List data) { - if (data == null) { - return; - } - mEmptyView.setErrorType(EmptyLayout.HIDE_LAYOUT); - - if (mCurrentPage == 0) { - mSoftwareAdapter.clear(); - } - - for (int i = 0; i < data.size(); i++) { - if (compareTo(mSoftwareAdapter.getData(), data.get(i))) { - data.remove(i); - } - } - int adapterState = ListBaseAdapter.STATE_EMPTY_ITEM; - if (mSoftwareAdapter.getCount() == 0 && mState == STATE_NONE) { - mEmptyView.setErrorType(EmptyLayout.NODATA); - } else if (data.size() == 0 || (data.size() < 20 && mCurrentPage == 0)) { - adapterState = ListBaseAdapter.STATE_NO_MORE; - } else { - adapterState = ListBaseAdapter.STATE_LOAD_MORE; - } - mSoftwareAdapter.setState(adapterState); - mSoftwareAdapter.addData(data); - } - - private boolean compareTo(List data, SoftwareDec enity) { - int s = data.size(); - if (enity != null) { - for (int i = 0; i < s; i++) { - if (enity.getName().equals( - ((SoftwareDec) data.get(i)).getName())) { - return true; - } - } - } - return false; - } - - @Override - public void onScrollStateChanged(AbsListView view, int scrollState) { - } - - @Override - public void onScroll(AbsListView view, int firstVisibleItem, - int visibleItemCount, int totalItemCount) { - // 数据已经全部加载,或数据为空时,或正在加载,不处理滚动事件 - if (mState == STATE_NOMORE || mState == STATE_LOADMORE - || mState == STATE_REFRESH) { - return; - } - if (mSoftwareAdapter != null - && mSoftwareAdapter.getDataSize() > 0 - && mLvSoftware.getLastVisiblePosition() == (mLvSoftware - .getCount() - 1)) { - if (mState == STATE_NONE - && mSoftwareAdapter.getState() == ListBaseAdapter.STATE_LOAD_MORE) { - mState = STATE_LOADMORE; - mCurrentPage++; - sendRequestTagData(); - } - } - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/SoftwareDetailFragment.java b/app/src/main/java/net/oschina/app/fragment/SoftwareDetailFragment.java deleted file mode 100644 index 6e76225e3..000000000 --- a/app/src/main/java/net/oschina/app/fragment/SoftwareDetailFragment.java +++ /dev/null @@ -1,196 +0,0 @@ -package net.oschina.app.fragment; - -import android.text.Editable; -import android.text.TextUtils; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.CommonDetailFragment; -import net.oschina.app.bean.FavoriteList; -import net.oschina.app.bean.Software; -import net.oschina.app.bean.SoftwareDetail; -import net.oschina.app.bean.Tweet; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.ThemeSwitchUtils; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.URLsUtils; -import net.oschina.app.util.XmlUtils; - -import java.io.InputStream; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; - -/** - * Created by 火蚁 on 15/5/26. - */ -public class SoftwareDetailFragment extends CommonDetailFragment { - - private String mIden; - - @Override - protected String getCacheKey() { - if (TextUtils.isEmpty(mIden)) { - return "software_" + mId; - } - return "software_" + mIden; - } - - @Override - protected void sendRequestDataForNet() { - // 通过id来获取软件详情 - if (mId > 0) { - OSChinaApi.getSoftwareDetail(mId, mDetailHeandler); - return; - } - - if (TextUtils.isEmpty(mIden)) { - executeOnLoadDataError(); - return; - } - OSChinaApi.getSoftwareDetail(mIden, mDetailHeandler); - } - - @Override - public void initData() { - super.initData(); - mIden = getActivity().getIntent().getStringExtra("ident"); - if (TextUtils.isEmpty(mIden)) { - return; - } - try { - mIden = URLEncoder.encode(mIden, "UTF-8"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - } - - @Override - protected Software parseData(InputStream is) { - return XmlUtils.toBean(SoftwareDetail.class, is).getSoftware(); - } - - @Override - protected String getWebViewBody(Software detail) { - mId = detail.getId(); - if (TextUtils.isEmpty(detail.getBody())) { - return ""; - } - StringBuffer body = new StringBuffer(); - body.append(ThemeSwitchUtils.getWebViewBodyString()); - body.append(UIHelper.WEB_STYLE).append(UIHelper.WEB_LOAD_IMAGES); - // 添加title - String title = ""; - // 判断是否推荐 - if (mDetail.getRecommended() == 4) { - title = String.format("
    %s %s
    ", mDetail.getLogo(), mDetail.getExtensionTitle(), mDetail.getTitle(), "file:///android_asset/ic_soft_recommend.png"); - } else { - title = String.format("
    %s %s
    ", mDetail.getLogo(), mDetail.getExtensionTitle(), mDetail.getTitle()); - } - body.append(title); - // 添加图片点击放大支持 - body.append(UIHelper.setHtmlCotentSupportImagePreview(mDetail.getBody())); - - // 软件信息 - body.append("
    "); - if (!TextUtils.isEmpty(mDetail.getAuthor())) { - String author = String.format("%s", mDetail.getAuthorId(), mDetail.getAuthor()); - body.append(String.format("
  • 软件作者:  %s
  • ", author)); - } - body.append(String.format("
  • 开源协议:  %s
  • ", mDetail.getLicense())); - body.append(String.format("
  • 开发语言:  %s
  • ", mDetail.getLanguage())); - body.append(String.format("
  • 操作系统:  %s
  • ", mDetail.getOs())); - body.append(String.format("
  • 收录时间:  %s
  • ", mDetail.getRecordtime())); - body.append("
    "); - - // 软件的首页、文档、下载 - body.append("
    "); - if (!TextUtils.isEmpty(mDetail.getHomepage())) { - body.append(String.format("
  • 软件首页
  • ", mDetail.getHomepage())); - } - if (!TextUtils.isEmpty(mDetail.getDocument())) { - body.append(String.format("
  • 软件文档
  • ", mDetail.getDocument())); - } - if (!TextUtils.isEmpty(mDetail.getDownload())) { - body.append(String.format("
  • 软件下载
  • ", mDetail.getDownload())); - } - body.append("
    "); - // 封尾 - body.append(""); - return body.toString(); - } - - @Override - protected void showCommentView() { - if (mDetail != null) - UIHelper.showSoftWareTweets(getActivity(), mDetail.getId()); - } - - @Override - public void onClickSendButton(Editable str) { - if (mDetail.getId() == 0) { - AppContext.showToast("无法获取该软件~"); - return; - } - if (!TDevice.hasInternet()) { - AppContext.showToastShort(R.string.tip_network_error); - return; - } - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - if (TextUtils.isEmpty(str)) { - AppContext.showToastShort(R.string.tip_comment_content_empty); - return; - } - Tweet tweet = new Tweet(); - tweet.setAuthorid(AppContext.getInstance().getLoginUid()); - tweet.setBody(str.toString()); - showWaitDialog(R.string.progress_submit); - OSChinaApi.pubSoftWareTweet(tweet, mDetail.getId(), mCommentHandler); - } - - @Override - protected int getCommentType() { - return 0; - } - - @Override - protected int getFavoriteTargetType() { - return FavoriteList.TYPE_SOFTWARE; - } - - @Override - protected int getFavoriteState() { - return mDetail.getFavorite(); - } - - @Override - protected void updateFavoriteChanged(int newFavoritedState) { - mDetail.setFavorite(newFavoritedState); - saveCache(mDetail); - } - - @Override - protected int getCommentCount() { - return mDetail.getTweetCount(); - } - - @Override - protected String getShareTitle() { - return String.format("%s %s", mDetail.getExtensionTitle(), mDetail.getTitle()); - } - - @Override - protected String getShareContent() { - return StringUtils.getSubString(0, 55, - getFilterHtmlBody(mDetail.getBody())); - } - - @Override - protected String getShareUrl() { - return String.format(URLsUtils.URL_MOBILE + "p/%s", mIden); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/SoftwareListFragment.java b/app/src/main/java/net/oschina/app/fragment/SoftwareListFragment.java deleted file mode 100644 index 266682c0a..000000000 --- a/app/src/main/java/net/oschina/app/fragment/SoftwareListFragment.java +++ /dev/null @@ -1,92 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; -import java.util.List; - -import net.oschina.app.adapter.SoftwareAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Entity; -import net.oschina.app.bean.ListEntity; -import net.oschina.app.bean.SoftwareDec; -import net.oschina.app.bean.SoftwareList; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; - -public class SoftwareListFragment extends BaseListFragment { - - public static final String BUNDLE_SOFTWARE = "BUNDLE_SOFTWARE"; - - protected static final String TAG = SoftwareListFragment.class - .getSimpleName(); - private static final String CACHE_KEY_PREFIX = "softwarelist_"; - - private String softwareType = "recommend"; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Bundle args = getArguments(); - if (args != null) { - softwareType = args.getString(BUNDLE_SOFTWARE); - } - } - - @Override - protected SoftwareAdapter getListAdapter() { - return new SoftwareAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX + softwareType; - } - - @Override - protected SoftwareList parseList(InputStream is) throws Exception { - SoftwareList list = XmlUtils.toBean(SoftwareList.class, is); - return list; - } - - @Override - protected ListEntity readList(Serializable seri) { - return ((SoftwareList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getSoftwareList(softwareType, mCurrentPage, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - SoftwareDec softwaredec = (SoftwareDec) mAdapter.getItem(position); - if (softwaredec != null) { - String ident = softwaredec.getUrl().substring(softwaredec.getUrl().lastIndexOf("/") + 1); - UIHelper.showSoftwareDetail(getActivity(), ident); - // 放入已读列表 - saveToReadedList(view, SoftwareList.PREF_READED_SOFTWARE_LIST, - softwaredec.getName()); - } - } - - @Override - protected boolean compareTo(List data, Entity enity) { - int s = data.size(); - if (enity != null) { - for (int i = 0; i < s; i++) { - if (((SoftwareDec) enity).getName().equals( - ((SoftwareDec) data.get(i)).getName())) { - return true; - } - } - } - return false; - } - -} diff --git a/app/src/main/java/net/oschina/app/fragment/TweetDetailFragment.java b/app/src/main/java/net/oschina/app/fragment/TweetDetailFragment.java deleted file mode 100644 index b200143e8..000000000 --- a/app/src/main/java/net/oschina/app/fragment/TweetDetailFragment.java +++ /dev/null @@ -1,548 +0,0 @@ -package net.oschina.app.fragment; - -import android.content.DialogInterface; -import android.content.Intent; -import android.graphics.drawable.AnimationDrawable; -import android.os.Bundle; -import android.text.Editable; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.webkit.WebView; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.AdapterView.OnItemLongClickListener; -import android.widget.ImageView; -import android.widget.RelativeLayout; -import android.widget.TextView; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.adapter.CommentAdapter; -import net.oschina.app.api.OperationResponseHandler; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BeseHaveHeaderListFragment; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Comment; -import net.oschina.app.bean.CommentList; -import net.oschina.app.bean.Result; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.bean.Tweet; -import net.oschina.app.bean.TweetDetail; -import net.oschina.app.cache.CacheManager; -import net.oschina.app.emoji.OnSendClickListener; -import net.oschina.app.ui.DetailActivity; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.HTMLUtil; -import net.oschina.app.util.KJAnimations; -import net.oschina.app.util.PlatfromUtil; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.ThemeSwitchUtils; -import net.oschina.app.util.TypefaceUtils; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import net.oschina.app.widget.AvatarView; -import net.oschina.app.widget.RecordButtonUtil; -import net.oschina.app.widget.RecordButtonUtil.OnPlayListener; - -import cz.msebera.android.httpclient.Header; -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.io.Serializable; -import java.util.List; - -/*** - * 动弹详情,实际每个item显示的数据类型是Comment - * - * TweetDetailFragment.java - * - * @author 火蚁(http://my.oschina.net/u/253900) - * - * @data 2015-1-28 上午11:48:41 - */ -public class TweetDetailFragment extends - BeseHaveHeaderListFragment implements - OnItemClickListener, OnItemLongClickListener, OnSendClickListener { - - private static final String CACHE_KEY_PREFIX = "tweet_"; - private static final String CACHE_KEY_TWEET_COMMENT = "tweet_comment_"; - private AvatarView mIvAvatar; - private TextView mTvName, mTvFrom, mTvTime, mTvCommentCount; - private WebView mContent; - private int mTweetId; - private Tweet mTweet; - private RelativeLayout mRlRecordSound; - private final RecordButtonUtil util = new RecordButtonUtil(); - - private TextView mLikeUser; - private TextView mTvLikeState; - - private DetailActivity outAty; - - @Override - protected CommentAdapter getListAdapter() { - return new CommentAdapter(); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - outAty = (DetailActivity) getActivity(); - return super.onCreateView(inflater, container, savedInstanceState); - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_TWEET_COMMENT + mTweetId + "_" + mCurrentPage; - } - - @Override - protected CommentList parseList(InputStream is) throws Exception { - CommentList list = XmlUtils.toBean(CommentList.class, is); - return list; - } - - @Override - protected CommentList readList(Serializable seri) { - return ((CommentList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getCommentList(mTweetId, CommentList.CATALOG_TWEET, - mCurrentPage, mHandler); - } - - /** - * 初始化声音动弹的录音View - * - * @param header - */ - private void initSoundView(View header) { - final ImageView playerButton = (ImageView) header - .findViewById(R.id.tweet_img_record); - final TextView playerTime = (TextView) header - .findViewById(R.id.tweet_tv_record); - final AnimationDrawable drawable = (AnimationDrawable) playerButton - .getBackground(); - mRlRecordSound = (RelativeLayout) header - .findViewById(R.id.tweet_bg_record); - mRlRecordSound.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - if (mTweet != null) { - util.startPlay(mTweet.getAttach(), playerTime); - } else { - AppContext.showToast("找不到语音动弹,可能已经被主人删除了"); - } - } - }); - - util.setOnPlayListener(new OnPlayListener() { - @SuppressWarnings("deprecation") - @Override - public void stopPlay() { - drawable.stop(); - playerButton.setBackgroundDrawable(drawable.getFrame(0)); - } - - @SuppressWarnings("deprecation") - @Override - public void starPlay() { - playerButton.setBackgroundDrawable(drawable); - drawable.start(); - } - }); - } - - @Override - public void onStop() { - super.onStop(); - if (util != null && util.isPlaying()) { - util.stopPlay(); - } - } - - @Override - protected boolean requestDataIfViewCreated() { - return false; - } - - @Override - public void onResume() { - super.onResume(); - outAty.emojiFragment.hideFlagButton(); - } - - private void fillUI() { - mIvAvatar.setAvatarUrl(mTweet.getPortrait()); - mIvAvatar.setUserInfo(mTweet.getAuthorid(), mTweet.getAuthor()); - mTvName.setText(mTweet.getAuthor()); - mTvTime.setText(StringUtils.friendly_time(mTweet.getPubDate())); - PlatfromUtil.setPlatFromString(mTvFrom, mTweet.getAppclient()); - - mTvCommentCount.setText(mTweet.getCommentCount() + ""); - if (StringUtils.isEmpty(mTweet.getAttach())) { - mRlRecordSound.setVisibility(View.GONE); - } else { - mRlRecordSound.setVisibility(View.VISIBLE); - } - fillWebViewBody(); - setLikeUser(); - setLikeState(); - } - - private void setLikeState() { - if (mTweet != null) { - if (mTweet.getIsLike() == 1) { - mTvLikeState.setTextColor(AppContext.getInstance().getResources().getColor(R.color.day_colorPrimary)); - } else { - mTvLikeState.setTextColor(AppContext.getInstance().getResources().getColor(R.color.gray)); - } - } - } - - private void setLikeUser() { - if (mTweet == null || mTweet.getLikeUser() == null - || mTweet.getLikeUser().isEmpty()) { - mLikeUser.setVisibility(View.GONE); - } else { - mLikeUser.setVisibility(View.VISIBLE); - mTweet.setLikeUsers(getActivity(), mLikeUser, false); - } - } - - /** - * 填充webview内容 - */ - private void fillWebViewBody() { - StringBuffer body = new StringBuffer(); - body.append(ThemeSwitchUtils.getWebViewBodyString()); - body.append(UIHelper.WEB_STYLE + UIHelper.WEB_LOAD_IMAGES); - - StringBuilder tweetbody = new StringBuilder(mTweet.getBody()); - - String tweetBody = TextUtils.isEmpty(mTweet.getImgSmall()) ? tweetbody - .toString() : tweetbody.toString() + "
    "; - body.append(setHtmlCotentSupportImagePreview(tweetBody)); - - UIHelper.addWebImageShow(getActivity(), mContent); - // 封尾 - body.append(""); - mContent.loadDataWithBaseURL(null, body.toString(), "text/html", - "utf-8", null); - } - - /** - * 添加图片放大支持 - * - * @param body - * @return - */ - private String setHtmlCotentSupportImagePreview(String body) { - // 过滤掉 img标签的width,height属性 - body = body.replaceAll("(]*?)\\s+width\\s*=\\s*\\S+", "$1"); - body = body.replaceAll("(]*?)\\s+height\\s*=\\s*\\S+", "$1"); - return body.replaceAll("(]+src=\")(\\S+)\"", - "$1$2\" onClick=\"javascript:mWebViewImageListener.showImagePreview('" - + mTweet.getImgBig() + "')\""); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - final Comment comment = mAdapter.getItem(position - 1); - if (comment == null) - return; - outAty.emojiFragment.getEditText().setHint("回复:" + comment.getAuthor()); - outAty.emojiFragment.getEditText().setTag(comment); - outAty.emojiFragment.showSoftKeyboard(); - } - - private final AsyncHttpResponseHandler mCommentHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - ResultBean rsb = XmlUtils.toBean(ResultBean.class, - new ByteArrayInputStream(arg2)); - Result res = rsb.getResult(); - if (res.OK()) { - hideWaitDialog(); - AppContext.showToastShort(R.string.comment_publish_success); - mAdapter.setState(ListBaseAdapter.STATE_NO_MORE); - mAdapter.addItem(0, rsb.getComment()); - setTweetCommentCount(); - } else { - hideWaitDialog(); - AppContext.showToastShort(res.getErrorMessage()); - } - outAty.emojiFragment.clean(); - } catch (Exception e) { - e.printStackTrace(); - onFailure(arg0, arg1, arg2, e); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - hideWaitDialog(); - AppContext.showToastShort(R.string.comment_publish_faile); - } - }; - - class DeleteOperationResponseHandler extends OperationResponseHandler { - - DeleteOperationResponseHandler(Object... args) { - super(args); - } - - @Override - public void onSuccess(int code, ByteArrayInputStream is, Object[] args) { - try { - Result res = XmlUtils.toBean(ResultBean.class, is).getResult(); - if (res.OK()) { - AppContext.showToastShort(R.string.delete_success); - mAdapter.removeItem(args[0]); - setTweetCommentCount(); - } else { - AppContext.showToastShort(res.getErrorMessage()); - } - } catch (Exception e) { - e.printStackTrace(); - onFailure(code, e.getMessage(), args); - } - } - - @Override - public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { - - } - - @Override - public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { - AppContext.showToastShort(R.string.delete_faile); - } - } - - private void handleDeleteComment(Comment comment) { - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - AppContext.showToastShort(R.string.deleting); - OSChinaApi.deleteComment(mTweetId, CommentList.CATALOG_TWEET, - comment.getId(), comment.getAuthorId(), - new DeleteOperationResponseHandler(comment)); - } - - private void setTweetCommentCount() { - mAdapter.notifyDataSetChanged(); - if (mTweet != null) { - mTweet.setCommentCount(mAdapter.getDataSize() + ""); - mTvCommentCount.setText(mTweet.getCommentCount() + ""); - } - } - - @Override - public boolean onItemLongClick(AdapterView parent, View view, - int position, long id) { - if (position - 1 == -1) { - return false; - } - final Comment item = mAdapter.getItem(position - 1); - if (item == null) - return false; - int itemsLen = item.getAuthorId() == AppContext.getInstance() - .getLoginUid() ? 2 : 1; - String[] items = new String[itemsLen]; - items[0] = getResources().getString(R.string.copy); - if (itemsLen == 2) { - items[1] = getResources().getString(R.string.delete); - } - DialogHelp.getSelectDialog(getActivity(), items, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - if (i == 0) { - TDevice.copyTextToBoard(HTMLUtil.delHTMLTag(item - .getContent())); - } else if (i == 1) { - handleDeleteComment(item); - } - } - }).show(); - return true; - } - - @Override - protected void requestDetailData(boolean isRefresh) { - String key = getDetailCacheKey(); - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - if (TDevice.hasInternet() - && (!CacheManager.isExistDataCache(getActivity(), key) || isRefresh)) { - OSChinaApi.getTweetDetail(mTweetId, mDetailHandler); - } else { - readDetailCacheData(key); - } - } - - @Override - protected boolean isRefresh() { - return true; - } - - @Override - protected View initHeaderView() { - Intent args = getActivity().getIntent(); - mTweetId = args.getIntExtra("tweet_id", 0); - mTweet = (Tweet) args.getParcelableExtra("tweet"); - - mListView.setOnItemLongClickListener(this); - View header = LayoutInflater.from(getActivity()).inflate( - R.layout.list_header_tweet_detail, null); - mIvAvatar = (AvatarView) header.findViewById(R.id.iv_avatar); - - mTvName = (TextView) header.findViewById(R.id.tv_name); - mTvFrom = (TextView) header.findViewById(R.id.tv_from); - mTvTime = (TextView) header.findViewById(R.id.tv_time); - mTvCommentCount = (TextView) header.findViewById(R.id.tv_comment_count); - mContent = (WebView) header.findViewById(R.id.webview); - UIHelper.initWebView(mContent); - mContent.loadUrl("file:///android_asset/detail_page.html"); - initSoundView(header); - mLikeUser = (TextView) header.findViewById(R.id.tv_likeusers); - mTvLikeState = (TextView) header.findViewById(R.id.tv_like_state); - mTvLikeState.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - likeOption(); - } - }); - TypefaceUtils.setTypeface(mTvLikeState); - return header; - } - - private void likeOption() { - if (mTweet == null) - return; - AsyncHttpResponseHandler handler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) {} - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) {} - }; - if (AppContext.getInstance().isLogin()) { - if (mTweet.getIsLike() == 1) { - mTweet.setIsLike(0); - mTweet.getLikeUser().remove(0); - mTweet.setLikeCount(mTweet.getLikeCount() - 1); - OSChinaApi.pubUnLikeTweet(mTweetId, mTweet.getAuthorid(), - handler); - } else { - mTvLikeState.setAnimation(KJAnimations.getScaleAnimation(1.5f, - 300)); - mTweet.setIsLike(1); - mTweet.getLikeUser().add(0, - AppContext.getInstance().getLoginUser()); - mTweet.setLikeCount(mTweet.getLikeCount() + 1); - OSChinaApi - .pubLikeTweet(mTweetId, mTweet.getAuthorid(), handler); - } - setLikeState(); - mTweet.setLikeUsers(getActivity(), mLikeUser, false); - } else { - AppContext.showToast("先登陆再点赞~"); - UIHelper.showLoginActivity(getActivity()); - } - } - - @Override - protected String getDetailCacheKey() { - return CACHE_KEY_PREFIX + mTweetId; - } - - @Override - protected void executeOnLoadDetailSuccess(TweetDetail detailBean) { - mErrorLayout.setErrorType(EmptyLayout.HIDE_LAYOUT); - this.mTweet = detailBean.getTweet(); - fillUI(); - mAdapter.setNoDataText(R.string.comment_empty); - } - - @Override - protected TweetDetail getDetailBean(ByteArrayInputStream is) { - return XmlUtils.toBean(TweetDetail.class, is); - } - - @Override - protected void executeOnLoadDataSuccess(List data) { - super.executeOnLoadDataSuccess(data); - int commentCount = StringUtils.toInt(mTweet == null ? 0 : this.mTweet - .getCommentCount()); - if (commentCount < (mAdapter.getCount() - 1)) { - commentCount = mAdapter.getCount() - 1; - } - mTvCommentCount.setText(commentCount + ""); - } - - @Override - public void onClickSendButton(Editable str) { - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - if (!TDevice.hasInternet()) { - AppContext.showToastShort(R.string.tip_network_error); - return; - } - if (TextUtils.isEmpty(str)) { - AppContext.showToastShort(R.string.tip_comment_content_empty); - return; - } - showWaitDialog(R.string.progress_submit); - try { - if (outAty.emojiFragment.getEditText().getTag() != null) { - Comment comment = (Comment) outAty.emojiFragment.getEditText() - .getTag(); - OSChinaApi.replyComment(mTweetId, CommentList.CATALOG_TWEET, - comment.getId(), comment.getAuthorId(), AppContext - .getInstance().getLoginUid(), str.toString(), - mCommentHandler); - } else { - OSChinaApi.publicComment(CommentList.CATALOG_TWEET, mTweetId, - AppContext.getInstance().getLoginUid(), str.toString(), - 0, mCommentHandler); - } - } catch (Exception e) { - } - } - - @Override - public void onClickFlagButton() {} - - @Override - public boolean onBackPressed() { - if (outAty.emojiFragment.isShowEmojiKeyBoard()) { - outAty.emojiFragment.hideAllKeyBoard(); - return true; - } - if (outAty.emojiFragment.getEditText().getTag() != null) { - outAty.emojiFragment.getEditText().setTag(null); - outAty.emojiFragment.getEditText().setHint("说点什么吧"); - return true; - } - return super.onBackPressed(); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/TweetLikeUsersFragment.java b/app/src/main/java/net/oschina/app/fragment/TweetLikeUsersFragment.java deleted file mode 100644 index 8ece7df02..000000000 --- a/app/src/main/java/net/oschina/app/fragment/TweetLikeUsersFragment.java +++ /dev/null @@ -1,77 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; - -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; - -import net.oschina.app.adapter.TweetLikeUsersAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseActivity; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.TweetLikeUserList; -import net.oschina.app.bean.User; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; - -/** - * TweetLikeUsersFragment.java - * - * @author 火蚁(http://my.oschina.net/u/253900) - * - * @data 2015-3-26 下午4:04:12 - */ -public class TweetLikeUsersFragment extends BaseListFragment { - - @Override - protected TweetLikeUsersAdapter getListAdapter() { - // TODO Auto-generated method stub - return new TweetLikeUsersAdapter(); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - // TODO Auto-generated method stub - super.onCreate(savedInstanceState); - BaseActivity activity = (BaseActivity) getActivity(); - activity.setActionBarTitle("动弹点赞列表"); - } - - @Override - protected String getCacheKeyPrefix() { - // TODO Auto-generated method stub - return "tweet_like_list_" + mCatalog; - } - - @Override - protected TweetLikeUserList parseList(InputStream is) throws Exception { - // TODO Auto-generated method stub - TweetLikeUserList list = XmlUtils.toBean(TweetLikeUserList.class, is); - return list; - } - - @Override - protected TweetLikeUserList readList(Serializable seri) { - // TODO Auto-generated method stub - return (TweetLikeUserList) seri; - } - - @Override - protected void sendRequestData() { - // TODO Auto-generated method stub - OSChinaApi.getTweetLikeList(mCatalog, mCurrentPage, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - // TODO Auto-generated method stub - User item = mAdapter.getItem(position); - if (item != null && item.getId() > 0) { - UIHelper.showUserCenter(getActivity(), item.getId(), item.getName()); - } - } -} - diff --git a/app/src/main/java/net/oschina/app/fragment/TweetPubFragment.java b/app/src/main/java/net/oschina/app/fragment/TweetPubFragment.java deleted file mode 100644 index 105f75d2b..000000000 --- a/app/src/main/java/net/oschina/app/fragment/TweetPubFragment.java +++ /dev/null @@ -1,693 +0,0 @@ -package net.oschina.app.fragment; - -import android.app.Activity; -import android.content.DialogInterface; -import android.content.Intent; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.net.Uri; -import android.os.Build; -import android.os.Bundle; -import android.os.Environment; -import android.os.Handler; -import android.os.Message; -import android.provider.MediaStore; -import android.provider.MediaStore.Images; -import android.support.annotation.Nullable; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; -import android.view.WindowManager; -import android.widget.EditText; -import android.widget.ImageButton; -import android.widget.ImageView; -import android.widget.TextView; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.base.BaseFragment; -import net.oschina.app.bean.Tweet; -import net.oschina.app.emoji.EmojiKeyboardFragment; -import net.oschina.app.emoji.Emojicon; -import net.oschina.app.emoji.InputHelper; -import net.oschina.app.emoji.OnEmojiClickListener; -import net.oschina.app.service.ServerTaskUtils; -import net.oschina.app.ui.SelectFriendsActivity; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.FileUtil; -import net.oschina.app.util.ImageUtils; -import net.oschina.app.util.SimpleTextWatcher; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.UIHelper; - -import org.kymjs.kjframe.Core; -import org.kymjs.kjframe.bitmap.BitmapCallBack; -import org.kymjs.kjframe.bitmap.BitmapCreate; -import org.kymjs.kjframe.bitmap.DiskImageRequest; -import org.kymjs.kjframe.http.KJAsyncTask; -import org.kymjs.kjframe.utils.FileUtils; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -public class TweetPubFragment extends BaseFragment implements - OnEmojiClickListener { - - public static final int ACTION_TYPE_ALBUM = 0; - public static final int ACTION_TYPE_PHOTO = 1; - public static final int ACTION_TYPE_RECORD = 2; // 录音 - public static final int ACTION_TYPE_TOPIC = 3; // 录音 - public static final String FROM_IMAGEPAGE_KEY = "from_image_page"; - - public static final String ACTION_TYPE = "action_type"; - - private static final int MAX_TEXT_LENGTH = 160; - private static final String TEXT_ATME = "@请输入用户名 "; - private static final String TEXT_SOFTWARE = "#请输入软件名#"; - - private static final int SELECT_FRIENDS_REEQUEST_CODE = 100; - - private String fromSharedTextContent = ""; - - @InjectView(R.id.ib_emoji_keyboard) - ImageButton mIbEmoji; - - @InjectView(R.id.ib_picture) - ImageButton mIbPicture; - - @InjectView(R.id.ib_mention) - ImageButton mIbMention; - - @InjectView(R.id.ib_trend_software) - ImageButton mIbTrendSoftware; - - @InjectView(R.id.tv_clear) - TextView mTvClear; - - @InjectView(R.id.rl_img) - View mLyImage; - - @InjectView(R.id.iv_img) - ImageView mIvImage; - - @InjectView(R.id.et_content) - EditText mEtInput; - - private MenuItem mSendMenu; - - private boolean mIsKeyboardVisible; - - private final EmojiKeyboardFragment keyboardFragment = new EmojiKeyboardFragment(); - - private String theLarge, theThumbnail; - private File imgFile; - - private final Handler handler = new Handler() { - @Override - public void handleMessage(Message msg) { - if (msg.what == 1 && msg.obj != null) { - // 显示图片 - mIvImage.setImageBitmap((Bitmap) msg.obj); - mLyImage.setVisibility(View.VISIBLE); - } - } - }; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - int mode = WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE - | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE; - getActivity().getWindow().setSoftInputMode(mode); - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - super.onCreateOptionsMenu(menu, inflater); - inflater.inflate(R.menu.pub_topic_menu, menu); - mSendMenu = menu.findItem(R.id.public_menu_send); - updateMenuState(); - } - - public void updateMenuState() { - if (mSendMenu == null) { - return; - } - if (mEtInput.getText().length() == 0) { - mSendMenu.setEnabled(false); - mSendMenu.setIcon(R.drawable.actionbar_unsend_icon); - } else { - mSendMenu.setEnabled(true); - mSendMenu.setIcon(R.drawable.actionbar_send_icon); - } - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.public_menu_send: - handleSubmit(); - break; - default: - break; - } - return true; - } - - /** - * 方便外部Activity调用 - */ - public void setContentText(String content) { - fromSharedTextContent = content; - if (mEtInput != null) { - mEtInput.setText(content); - } - } - - /** - * 方便外部Activity调用 - */ - public void setContentImage(String url) { - handleImageFile(url); - } - - private void handleSubmit() { - if (!TDevice.hasInternet()) { - AppContext.showToastShort(R.string.tip_network_error); - return; - } - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - String content = mEtInput.getText().toString().trim(); - if (TextUtils.isEmpty(content)) { - mEtInput.requestFocus(); - AppContext.showToastShort(R.string.tip_content_empty); - return; - } - if (content.length() > MAX_TEXT_LENGTH) { - AppContext.showToastShort(R.string.tip_content_too_long); - return; - } - - Tweet tweet = new Tweet(); - tweet.setAuthorid(AppContext.getInstance().getLoginUid()); - tweet.setBody(content); - if (imgFile != null && imgFile.exists()) { - tweet.setImageFilePath(imgFile.getAbsolutePath()); - } - ServerTaskUtils.pubTweet(getActivity(), tweet); - if (mIsKeyboardVisible) { - TDevice.hideSoftKeyboard(getActivity().getCurrentFocus()); - } - getActivity().finish(); - } - - @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_tweet_pub, container, - false); - - initView(view); - return view; - } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - Bundle bundle = getArguments(); - if (bundle != null) { - int action_type = bundle.getInt(ACTION_TYPE, -1); - goToSelectPicture(action_type); - final String imgUrl = bundle.getString(FROM_IMAGEPAGE_KEY); - handleImageUrl(imgUrl); - } - } - - /** - * 处理从第三方分享跳转来的图片 - * - * @param filePath - */ - private void handleImageFile(final String filePath) { - if (!StringUtils.isEmpty(filePath)) { - KJAsyncTask.execute(new Runnable() { - @Override - public void run() { - final Message msg = Message.obtain(); - msg.what = 1; - try { - msg.obj = BitmapCreate.bitmapFromStream( - new FileInputStream(filePath), 520, 520); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - String path = FileUtils.getSDCardPath() - + "/OSChina/tempfile.jpg"; - FileUtils.bitmapToFile((Bitmap) msg.obj, path); - imgFile = new File(path); - handler.sendMessage(msg); - } - }); - } - } - - /** - * 处理从图片浏览跳转来的图片 - * - * @param url - */ - private void handleImageUrl(final String url) { - if (!StringUtils.isEmpty(url)) { - final Message msg = Message.obtain(); - msg.what = 1; - byte[] cache = Core.getKJBitmap().getCache(url); - msg.obj = BitmapFactory.decodeByteArray(cache, 0, cache.length); - if (msg.obj == null) { - DiskImageRequest req = new DiskImageRequest(); - req.load(url, 520, 520, new BitmapCallBack() { - @Override - public void onSuccess(Bitmap bitmap) { - super.onSuccess(bitmap); - msg.obj = bitmap; - String path = FileUtils.getSDCardPath() - + "/OSChina/tempfile.jpg"; - handler.sendMessage(msg); - FileUtils.bitmapToFile((Bitmap) msg.obj, path); - imgFile = new File(path); - } - }); - } else { - String path = FileUtils.getSDCardPath() - + "/OSChina/tempfile.jpg"; - FileUtils.bitmapToFile((Bitmap) msg.obj, path); - imgFile = new File(path); - handler.sendMessage(msg); - } - } - } - - @Override - public void initView(View view) { - super.initView(view); - ButterKnife.inject(this, view); - setHasOptionsMenu(true); - mIbEmoji.setOnClickListener(this); - mIbPicture.setOnClickListener(this); - mIbMention.setOnClickListener(this); - mIbTrendSoftware.setOnClickListener(this); - mTvClear.setOnClickListener(this); - mTvClear.setText(String.valueOf(MAX_TEXT_LENGTH)); - view.findViewById(R.id.iv_clear_img).setOnClickListener(this); - - mEtInput.addTextChangedListener(new SimpleTextWatcher() { - @Override - public void onTextChanged(CharSequence s, int start, int before, - int count) { - mTvClear.setText((MAX_TEXT_LENGTH - s.length()) + ""); - updateMenuState(); - } - }); - // 获取保存的tweet草稿 - mEtInput.setText(AppContext.getTweetDraft()); - mEtInput.setSelection(mEtInput.getText().toString().length()); - - mEtInput.addTextChangedListener(new SimpleTextWatcher() { - @Override - public void onTextChanged(CharSequence s, int start, int before, - int count) { - mTvClear.setText((MAX_TEXT_LENGTH - s.length()) + ""); - } - }); - // 获取保存的tweet草稿 - String content = fromSharedTextContent; - if (StringUtils.isEmpty(fromSharedTextContent)) { - content = AppContext.getTweetDraft(); - } - mEtInput.setText(content); - mEtInput.setSelection(mEtInput.getText().toString().length()); - - getFragmentManager().beginTransaction() - .replace(R.id.emoji_keyboard_fragment, keyboardFragment) - .commit(); - keyboardFragment.setOnEmojiClickListener(new OnEmojiClickListener() { - @Override - public void onEmojiClick(Emojicon v) { - InputHelper.input2OSC(mEtInput, v); - } - - @Override - public void onDeleteButtonClick(View v) { - InputHelper.backspace(mEtInput); - } - }); - } - - @Override - public boolean onBackPressed() { - final String tweet = mEtInput.getText().toString(); - if (!TextUtils.isEmpty(tweet)) { - DialogHelp.getConfirmDialog(getActivity(), "是否保存为草稿?", new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - AppContext.setTweetDraft(tweet); - getActivity().finish(); - } - }, new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - AppContext.setTweetDraft(""); - getActivity().finish(); - } - }).show(); - return true; - } - return super.onBackPressed(); - } - - @Override - public void onClick(View v) { - final int id = v.getId(); - if (id == R.id.ib_picture) { - handleSelectPicture(); - } else if (id == R.id.ib_mention) { - //insertMention(); - handleSelectFriends(); - } else if (id == R.id.ib_trend_software) { - insertTrendSoftware(); - } else if (id == R.id.tv_clear) { - handleClearWords(); - } else if (id == R.id.iv_clear_img) { - mIvImage.setImageBitmap(null); - mLyImage.setVisibility(View.GONE); - imgFile = null; - } else if (id == R.id.ib_emoji_keyboard) { - if (!keyboardFragment.isShow()) {// emoji隐藏中 - keyboardFragment.showEmojiKeyBoard(); - keyboardFragment.hideSoftKeyboard(); - } else { - keyboardFragment.hideEmojiKeyBoard(); - keyboardFragment.showSoftKeyboard(mEtInput); - } - } - } - - @Override - public void onActivityResult(final int requestCode, final int resultCode, - final Intent imageReturnIntent) { - if (resultCode != Activity.RESULT_OK) - return; - if (requestCode == SELECT_FRIENDS_REEQUEST_CODE) { - //选中好友的名字 - String names[] = imageReturnIntent.getStringArrayExtra("names"); - if (names != null && names.length > 0) { - //拼成字符串 - String text = ""; - for (String n : names) { - text += "@" + n + " "; - } - //插入到文本中 - mEtInput.getText().insert(mEtInput.getSelectionStart(), text); - } - return; - } - new Thread() { - private String selectedImagePath; - - @Override - public void run() { - Bitmap bitmap = null; - - if (requestCode == ImageUtils.REQUEST_CODE_GETIMAGE_BYSDCARD) { - if (imageReturnIntent == null) - return; - Uri selectedImageUri = imageReturnIntent.getData(); - if (selectedImageUri != null) { - selectedImagePath = ImageUtils.getImagePath( - selectedImageUri, getActivity()); - } - - if (selectedImagePath != null) { - theLarge = selectedImagePath; - } else { - bitmap = ImageUtils.loadPicasaImageFromGalley( - selectedImageUri, getActivity()); - } - - if (AppContext - .isMethodsCompat(android.os.Build.VERSION_CODES.ECLAIR_MR1)) { - String imaName = FileUtil.getFileName(theLarge); - if (imaName != null) - bitmap = ImageUtils.loadImgThumbnail(getActivity(), - imaName, - MediaStore.Images.Thumbnails.MICRO_KIND); - } - if (bitmap == null && !StringUtils.isEmpty(theLarge)) - bitmap = ImageUtils - .loadImgThumbnail(theLarge, 100, 100); - } else if (requestCode == ImageUtils.REQUEST_CODE_GETIMAGE_BYCAMERA) { - // 拍摄图片 - if (bitmap == null && !StringUtils.isEmpty(theLarge)) { - bitmap = ImageUtils - .loadImgThumbnail(theLarge, 100, 100); - } - } - - if (bitmap != null) {// 存放照片的文件夹 - String savePath = Environment.getExternalStorageDirectory() - .getAbsolutePath() + "/OSChina/Camera/"; - File savedir = new File(savePath); - if (!savedir.exists()) { - savedir.mkdirs(); - } - - String largeFileName = FileUtil.getFileName(theLarge); - String largeFilePath = savePath + largeFileName; - // 判断是否已存在缩略图 - if (largeFileName.startsWith("thumb_") - && new File(largeFilePath).exists()) { - theThumbnail = largeFilePath; - imgFile = new File(theThumbnail); - } else { - // 生成上传的800宽度图片 - String thumbFileName = "thumb_" + largeFileName; - theThumbnail = savePath + thumbFileName; - if (new File(theThumbnail).exists()) { - imgFile = new File(theThumbnail); - } else { - try { - // 压缩上传的图片 - ImageUtils.createImageThumbnail(getActivity(), - theLarge, theThumbnail, 860, 100); - imgFile = new File(theThumbnail); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - // 保存动弹临时图片 - // ((AppContext) getApplication()).setProperty( - // tempTweetImageKey, theThumbnail); - - Message msg = new Message(); - msg.what = 1; - msg.obj = bitmap; - handler.sendMessage(msg); - } - } - - ; - }.start(); - } - - private void handleClearWords() { - if (TextUtils.isEmpty(mEtInput.getText().toString())) - return; - DialogHelp.getConfirmDialog(getActivity(), "是否清空内容?", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - mEtInput.getText().clear(); - if (mIsKeyboardVisible) { - TDevice.showSoftKeyboard(mEtInput); - } - } - }).show(); - } - - @Override - public void onResume() { - super.onResume(); - keyboardFragment.showSoftKeyboard(mEtInput); - keyboardFragment.hideEmojiKeyBoard(); - } - - /** - * 跳转选择好友 - */ - private void handleSelectFriends() { - //如果没登录,则先去登录界面 - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - Intent intent = new Intent(getActivity(), SelectFriendsActivity.class); - startActivityForResult(intent, SELECT_FRIENDS_REEQUEST_CODE); - } - - private void handleSelectPicture() { - DialogHelp.getSelectDialog(getActivity(), getResources().getStringArray(R.array.choose_picture), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - goToSelectPicture(i); - } - }).show(); - } - - private void goToSelectPicture(int position) { - switch (position) { - case ACTION_TYPE_ALBUM: - Intent intent; - if (Build.VERSION.SDK_INT < 19) { - intent = new Intent(); - intent.setAction(Intent.ACTION_GET_CONTENT); - intent.setType("image/*"); - startActivityForResult(Intent.createChooser(intent, "选择图片"), - ImageUtils.REQUEST_CODE_GETIMAGE_BYSDCARD); - } else { - intent = new Intent(Intent.ACTION_PICK, - Images.Media.EXTERNAL_CONTENT_URI); - intent.setType("image/*"); - startActivityForResult(Intent.createChooser(intent, "选择图片"), - ImageUtils.REQUEST_CODE_GETIMAGE_BYSDCARD); - } - break; - case ACTION_TYPE_PHOTO: - // 判断是否挂载了SD卡 - String savePath = ""; - String storageState = Environment.getExternalStorageState(); - if (storageState.equals(Environment.MEDIA_MOUNTED)) { - savePath = Environment.getExternalStorageDirectory() - .getAbsolutePath() + "/oschina/Camera/"; - File savedir = new File(savePath); - if (!savedir.exists()) { - savedir.mkdirs(); - } - } - - // 没有挂载SD卡,无法保存文件 - if (StringUtils.isEmpty(savePath)) { - AppContext.showToastShort("无法保存照片,请检查SD卡是否挂载"); - return; - } - - String timeStamp = new SimpleDateFormat("yyyyMMddHHmmss") - .format(new Date()); - String fileName = "osc_" + timeStamp + ".jpg";// 照片命名 - File out = new File(savePath, fileName); - Uri uri = Uri.fromFile(out); - - theLarge = savePath + fileName;// 该照片的绝对路径 - - intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); - startActivityForResult(intent, - ImageUtils.REQUEST_CODE_GETIMAGE_BYCAMERA); - break; - case ACTION_TYPE_TOPIC: - Bundle bundle = getArguments(); - if (bundle != null) { - String topic = bundle.getString("tweet_topic"); - setContentText(topic); - if (mEtInput != null) { - mEtInput.setSelection(topic.length()); - } - } - break; - default: - break; - } - } - - private void insertMention() { - TDevice.showSoftKeyboard(mEtInput); - // 在光标所在处插入“@用户名” - int curTextLength = mEtInput.getText().length(); - if (curTextLength >= MAX_TEXT_LENGTH) - return; - String atme = TEXT_ATME; - int start, end; - if ((MAX_TEXT_LENGTH - curTextLength) >= atme.length()) { - start = mEtInput.getSelectionStart() + 1; - end = start + atme.length() - 2; - } else { - int num = MAX_TEXT_LENGTH - curTextLength; - if (num < atme.length()) { - atme = atme.substring(0, num); - } - start = mEtInput.getSelectionStart() + 1; - end = start + atme.length() - 1; - } - if (start > MAX_TEXT_LENGTH || end > MAX_TEXT_LENGTH) { - start = MAX_TEXT_LENGTH; - end = MAX_TEXT_LENGTH; - } - mEtInput.getText().insert(mEtInput.getSelectionStart(), atme); - mEtInput.setSelection(start, end);// 设置选中文字 - } - - private void insertTrendSoftware() { - // 在光标所在处插入“#软件名#” - int curTextLength = mEtInput.getText().length(); - if (curTextLength >= MAX_TEXT_LENGTH) - return; - String software = TEXT_SOFTWARE; - int start, end; - if ((MAX_TEXT_LENGTH - curTextLength) >= software.length()) { - start = mEtInput.getSelectionStart() + 1; - end = start + software.length() - 2; - } else { - int num = MAX_TEXT_LENGTH - curTextLength; - if (num < software.length()) { - software = software.substring(0, num); - } - start = mEtInput.getSelectionStart() + 1; - end = start + software.length() - 1; - } - if (start > MAX_TEXT_LENGTH || end > MAX_TEXT_LENGTH) { - start = MAX_TEXT_LENGTH; - end = MAX_TEXT_LENGTH; - } - mEtInput.getText().insert(mEtInput.getSelectionStart(), software); - mEtInput.setSelection(start, end);// 设置选中文字 - } - - @Override - public void initData() { - } - - @Override - public void onDeleteButtonClick(View v) { - } - - @Override - public void onEmojiClick(Emojicon v) { - InputHelper.input2OSC(mEtInput, v); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/TweetRecordFragment.java b/app/src/main/java/net/oschina/app/fragment/TweetRecordFragment.java deleted file mode 100644 index a7b3b5eae..000000000 --- a/app/src/main/java/net/oschina/app/fragment/TweetRecordFragment.java +++ /dev/null @@ -1,213 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.File; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.base.BaseFragment; -import net.oschina.app.bean.Tweet; -import net.oschina.app.service.ServerTaskUtils; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.UIHelper; -import net.oschina.app.widget.RecordButton; -import net.oschina.app.widget.RecordButton.OnFinishedRecordListener; -import net.oschina.app.widget.RecordButtonUtil.OnPlayListener; - -import org.kymjs.kjframe.utils.DensityUtils; - -import android.graphics.drawable.AnimationDrawable; -import android.os.Bundle; -import android.text.Editable; -import android.text.Selection; -import android.text.Spannable; -import android.text.TextWatcher; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.RelativeLayout; -import android.widget.RelativeLayout.LayoutParams; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 语音动弹发布界面 - * - * @author kymjs(kymjs123@gmail.com) - * - */ -public class TweetRecordFragment extends BaseFragment { - - @InjectView(R.id.tweet_layout_record) - RelativeLayout mLayout; - @InjectView(R.id.tweet_btn_record) - RecordButton mBtnRecort; - @InjectView(R.id.tweet_time_record) - TextView mTvTime; - @InjectView(R.id.tweet_text_record) - TextView mTvInputLen; - @InjectView(R.id.tweet_edit_record) - EditText mEtSpeech; - @InjectView(R.id.tweet_img_volume) - ImageView mImgVolume; - - public static int MAX_LEN = 160; - - private AnimationDrawable drawable; // 录音播放时的动画背景 - - private String strSpeech = "#语音动弹#"; - private int currentRecordTime = 0; - - @Override - public void onClick(View v) { - if (v == mLayout) { - mBtnRecort.playRecord(); - } - } - - @Override - public void initView(View view) { - RelativeLayout.LayoutParams params = (LayoutParams) mBtnRecort - .getLayoutParams(); - params.width = DensityUtils.getScreenW(getActivity()); - params.height = (int) (DensityUtils.getScreenH(getActivity()) * 0.4); - mBtnRecort.setLayoutParams(params); - mLayout.setOnClickListener(this); - - mBtnRecort.setOnFinishedRecordListener(new OnFinishedRecordListener() { - @Override - public void onFinishedRecord(String audioPath, int recordTime) { - currentRecordTime = recordTime; - mLayout.setVisibility(View.VISIBLE); - if (recordTime < 10) { - mTvTime.setText("0" + recordTime + "\""); - } else { - mTvTime.setText(recordTime + "\""); - } - } - - @Override - public void onCancleRecord() { - mLayout.setVisibility(View.GONE); - } - }); - - drawable = (AnimationDrawable) mImgVolume.getBackground(); - mBtnRecort.getAudioUtil().setOnPlayListener(new OnPlayListener() { - @Override - public void stopPlay() { - drawable.stop(); - mImgVolume.setBackgroundDrawable(drawable.getFrame(0)); - } - - @Override - public void starPlay() { - mImgVolume.setBackgroundDrawable(drawable); - drawable.start(); - } - }); - - mEtSpeech.addTextChangedListener(new TextWatcher() { - @Override - public void onTextChanged(CharSequence s, int start, int before, - int count) { - if (s.length() > MAX_LEN) { - mTvInputLen.setText("已达到最大长度"); - } else { - mTvInputLen.setText("您还可以输入" + (MAX_LEN - s.length()) - + "个字符"); - } - } - - @Override - public void beforeTextChanged(CharSequence s, int start, int count, - int after) {} - - @Override - public void afterTextChanged(Editable s) { - if (s.length() > MAX_LEN) { - mEtSpeech.setText(s.subSequence(0, MAX_LEN)); - CharSequence text = mEtSpeech.getText(); - if (text instanceof Spannable) - Selection.setSelection((Spannable) text, MAX_LEN); - } - } - }); - } - - @Override - public void initData() {} - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - super.onCreateView(inflater, container, savedInstanceState); - View rootView = inflater.inflate(R.layout.item_tweet_pub_record, - container, false); - ButterKnife.inject(this, rootView); - initView(rootView); - initData(); - return rootView; - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setHasOptionsMenu(true); - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.pub_tweet_menu, menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.public_menu_send: - handleSubmit(mBtnRecort.getCurrentAudioPath()); - break; - } - return true; - } - - /** - * 发布动弹 - */ - private void handleSubmit(String audioPath) { - if (!TDevice.hasInternet()) { - AppContext.showToastShort(R.string.tip_network_error); - return; - } - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - if (StringUtils.isEmpty(audioPath)) { - AppContext.showToastShort(R.string.record_sound_notfound); - return; - } - File file = new File(audioPath); - if (!file.exists()) { - AppContext.showToastShort(R.string.record_sound_notfound); - return; - } - - String body = mEtSpeech.getText().toString(); - if (!StringUtils.isEmpty(body)) { - strSpeech = body; - } - Tweet tweet = new Tweet(); - tweet.setAuthorid(AppContext.getInstance().getLoginUid()); - tweet.setAudioPath(audioPath); - tweet.setBody(strSpeech); - ServerTaskUtils.pubTweet(getActivity(), tweet); - getActivity().finish(); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/TweetsFragment.java b/app/src/main/java/net/oschina/app/fragment/TweetsFragment.java deleted file mode 100644 index d384666ca..000000000 --- a/app/src/main/java/net/oschina/app/fragment/TweetsFragment.java +++ /dev/null @@ -1,273 +0,0 @@ -package net.oschina.app.fragment; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemLongClickListener; -import cz.msebera.android.httpclient.Header; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.adapter.TweetAdapter; -import net.oschina.app.api.OperationResponseHandler; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Constants; -import net.oschina.app.bean.Result; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.bean.Tweet; -import net.oschina.app.bean.TweetsList; -import net.oschina.app.interf.OnTabReselectListener; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.HTMLUtil; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.io.Serializable; - -/** - * @author kymjs (http://www.kymjs.com) - */ -public class TweetsFragment extends BaseListFragment implements - OnItemLongClickListener, OnTabReselectListener { - - protected static final String TAG = TweetsFragment.class.getSimpleName(); - private static final String CACHE_KEY_PREFIX = "tweetslist_"; - - class DeleteTweetResponseHandler extends OperationResponseHandler { - - DeleteTweetResponseHandler(Object... args) { - super(args); - } - - @Override - public void onSuccess(int code, ByteArrayInputStream is, Object[] args) - throws Exception { - try { - Result res = XmlUtils.toBean(ResultBean.class, is).getResult(); - if (res != null && res.OK()) { - AppContext.showToastShort(R.string.delete_success); - Tweet tweet = (Tweet) args[0]; - mAdapter.removeItem(tweet); - mAdapter.notifyDataSetChanged(); - } else { - onFailure(code, res.getErrorMessage(), args); - } - } catch (Exception e) { - e.printStackTrace(); - onFailure(code, e.getMessage(), args); - } - } - - @Override - public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { - - } - - @Override - public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { - AppContext.showToastShort(R.string.delete_faile); - } - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (mCatalog > 0) { - IntentFilter filter = new IntentFilter( - Constants.INTENT_ACTION_USER_CHANGE); - filter.addAction(Constants.INTENT_ACTION_LOGOUT); - getActivity().registerReceiver(mReceiver, filter); - } - } - - @Override - public void onDestroy() { - if (mCatalog > 0) { - getActivity().unregisterReceiver(mReceiver); - } - super.onDestroy(); - } - - @Override - protected TweetAdapter getListAdapter() { - return new TweetAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - Bundle bundle = getArguments(); - if (bundle != null) { - String str = bundle.getString("topic"); - if (str != null) { - return str; - } - } - return CACHE_KEY_PREFIX + mCatalog; - } - - public String getTopic() { - Bundle bundle = getArguments(); - if (bundle != null) { - String str = bundle.getString("topic"); - if (str != null) { - return str; - } - } - return ""; - } - - @Override - protected TweetsList parseList(InputStream is) throws Exception { - TweetsList list = XmlUtils.toBean(TweetsList.class, is); - return list; - } - - @Override - protected TweetsList readList(Serializable seri) { - return ((TweetsList) seri); - } - - @Override - protected void sendRequestData() { - Bundle bundle = getArguments(); - if (bundle != null) { - String str = bundle.getString("topic"); - if (str != null) { - OSChinaApi.getTweetTopicList(mCurrentPage, str, mHandler); - return; - } - } - OSChinaApi.getTweetList(mCatalog, mCurrentPage, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - Tweet tweet = mAdapter.getItem(position); - if (tweet != null) { - UIHelper.showTweetDetail(view.getContext(), null, tweet.getId()); - } - } - - private final BroadcastReceiver mReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - setupContent(); - } - }; - - private void setupContent() { - if (AppContext.getInstance().isLogin()) { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - requestData(true); - } else { - mCatalog = TweetsList.CATALOG_ME; - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - mErrorLayout.setErrorMessage(getString(R.string.unlogin_tip)); - } - } - - @Override - protected void requestData(boolean refresh) { - if (mCatalog > 0) { - if (AppContext.getInstance().isLogin()) { - mCatalog = AppContext.getInstance().getLoginUid(); - super.requestData(refresh); - } else { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - mErrorLayout.setErrorMessage(getString(R.string.unlogin_tip)); - } - } else { - super.requestData(refresh); - } - } - - @Override - public void initView(View view) { - super.initView(view); - mListView.setOnItemLongClickListener(this); - mErrorLayout.setOnLayoutClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - if (mCatalog > 0) { - if (AppContext.getInstance().isLogin()) { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - requestData(true); - } else { - UIHelper.showLoginActivity(getActivity()); - } - } else { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - requestData(true); - } - } - }); - } - - @Override - public boolean onItemLongClick(AdapterView parent, View view, - int position, long id) { - Tweet tweet = mAdapter.getItem(position); - if (tweet != null) { - handleLongClick(tweet); - return true; - } - return false; - } - - private void handleLongClick(final Tweet tweet) { - String[] items = null; - if (AppContext.getInstance().getLoginUid() == tweet.getAuthorid()) { - items = new String[] { getResources().getString(R.string.copy), - getResources().getString(R.string.delete) }; - } else { - items = new String[] { getResources().getString(R.string.copy) }; - } - - DialogHelp.getSelectDialog(getActivity(), items, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - if (i == 0) { - TDevice.copyTextToBoard(HTMLUtil.delHTMLTag(tweet.getBody())); - } else if (i == 1) { - handleDeleteTweet(tweet); - } - } - }).show(); - } - - private void handleDeleteTweet(final Tweet tweet) { - DialogHelp.getConfirmDialog(getActivity(), "是否删除该动弹?", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - OSChinaApi.deleteTweet(tweet.getAuthorid(), tweet - .getId(), new DeleteTweetResponseHandler(tweet)); - } - }).show(); - } - - @Override - public void onTabReselect() { - onRefresh(); - } - - @Override - protected long getAutoRefreshTime() { - // 最新动弹3分钟刷新一次 - if (mCatalog == TweetsList.CATALOG_LATEST) { - return 3 * 60; - } - return super.getAutoRefreshTime(); - } -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/fragment/TweetsLikesFragment.java b/app/src/main/java/net/oschina/app/fragment/TweetsLikesFragment.java deleted file mode 100644 index 68f5c900f..000000000 --- a/app/src/main/java/net/oschina/app/fragment/TweetsLikesFragment.java +++ /dev/null @@ -1,183 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; -import java.util.List; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.adapter.TweetLikeAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Constants; -import net.oschina.app.bean.Entity; -import net.oschina.app.bean.Notice; -import net.oschina.app.bean.Tweet; -import net.oschina.app.bean.TweetLike; -import net.oschina.app.bean.TweetLikeList; -import net.oschina.app.bean.TweetsList; -import net.oschina.app.service.NoticeUtils; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import net.oschina.app.viewpagerfragment.NoticeViewPagerFragment; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; - -/** - * 赞过我动弹的列表 - * - * @date 2014年10月10日 - */ -public class TweetsLikesFragment extends BaseListFragment { - - protected static final String TAG = TweetsLikesFragment.class - .getSimpleName(); - private static final String CACHE_KEY_PREFIX = "mytweets_like_list_"; - - private boolean mIsWatingLogin; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (mCatalog > 0) { - IntentFilter filter = new IntentFilter( - Constants.INTENT_ACTION_USER_CHANGE); - filter.addAction(Constants.INTENT_ACTION_LOGOUT); - getActivity().registerReceiver(mReceiver, filter); - } - } - - @Override - public void onDestroy() { - if (mCatalog > 0) { - getActivity().unregisterReceiver(mReceiver); - } - super.onDestroy(); - } - - @Override - protected TweetLikeAdapter getListAdapter() { - return new TweetLikeAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX + mCatalog; - } - - @Override - protected TweetLikeList parseList(InputStream is) throws Exception { - TweetLikeList list = XmlUtils.toBean(TweetLikeList.class, is); - return list; - } - - @Override - protected TweetLikeList readList(Serializable seri) { - return ((TweetLikeList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getTweetLikeList(mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - Tweet tweet = mAdapter.getItem(position).getTweet(); - if (tweet != null) { - UIHelper.showTweetDetail(view.getContext(), null, tweet.getId()); - } - } - - private BroadcastReceiver mReceiver = new BroadcastReceiver() { - - @Override - public void onReceive(Context context, Intent intent) { - setupContent(); - } - }; - - private void setupContent() { - if (AppContext.getInstance().isLogin()) { - mIsWatingLogin = false; - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - requestData(true); - } else { - mCatalog = TweetsList.CATALOG_ME; - mIsWatingLogin = true; - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - mErrorLayout.setErrorMessage(getString(R.string.unlogin_tip)); - } - } - - @Override - protected void requestData(boolean refresh) { - if (AppContext.getInstance().isLogin()) { - mCatalog = AppContext.getInstance().getLoginUid(); - mIsWatingLogin = false; - super.requestData(refresh); - } else { - mIsWatingLogin = true; - mErrorLayout.setErrorType(EmptyLayout.NETWORK_ERROR); - mErrorLayout.setErrorMessage(getString(R.string.unlogin_tip)); - } - } - - @Override - public void initView(View view) { - super.initView(view); - mErrorLayout.setOnLayoutClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - if (AppContext.getInstance().isLogin()) { - mErrorLayout.setErrorType(EmptyLayout.NETWORK_LOADING); - requestData(true); - } else { - UIHelper.showLoginActivity(getActivity()); - } - } - }); - } - - @Override - protected long getAutoRefreshTime() { - if (mCatalog == TweetsList.CATALOG_LATEST) { - return 3 * 60; - } - return super.getAutoRefreshTime(); - } - - @Override - protected void onRefreshNetworkSuccess() { - // TODO Auto-generated method stub - super.onRefreshNetworkSuccess(); - if (AppContext.getInstance().isLogin() - && mCatalog == AppContext.getInstance().getLoginUid() - && 4 == NoticeViewPagerFragment.sCurrentPage) { - NoticeUtils.clearNotice(Notice.TYPE_NEWLIKE); - UIHelper.sendBroadcastForNotice(getActivity()); - } - } - - protected boolean compareTo(List data, Entity enity) { - int s = data.size(); - - if (enity != null && enity instanceof TweetLike) { - TweetLike tweetLike = (TweetLike) enity; - for (int i = 0; i < s; i++) { - if (tweetLike.getUser().getId() == ((TweetLike)data.get(i)).getId()) { - return true; - } - } - } - return false; - } -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/fragment/UserBlogFragment.java b/app/src/main/java/net/oschina/app/fragment/UserBlogFragment.java deleted file mode 100644 index b3ae9c3e9..000000000 --- a/app/src/main/java/net/oschina/app/fragment/UserBlogFragment.java +++ /dev/null @@ -1,61 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; - -import net.oschina.app.adapter.BlogAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Blog; -import net.oschina.app.bean.BlogList; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import android.view.View; -import android.widget.AdapterView; - -/** - * 用户的博客列表(用用户的id来获取) - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月29日 下午5:09:13 - * - */ -public class UserBlogFragment extends BaseListFragment { - - protected static final String TAG = UserBlogFragment.class.getSimpleName(); - private static final String CACHE_KEY_PREFIX = "user_bloglist_"; - - @Override - protected BlogAdapter getListAdapter() { - return new BlogAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX + mCatalog; - } - - @Override - protected BlogList parseList(InputStream is) throws Exception { - BlogList list = XmlUtils.toBean(BlogList.class, is); - return list; - } - - @Override - protected BlogList readList(Serializable seri) { - return ((BlogList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getUserBlogList(mCatalog, "", mCatalog, mCurrentPage, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - Blog blog = (Blog) mAdapter.getItem(position); - if (blog != null) - UIHelper.showUrlRedirect(view.getContext(), blog.getUrl()); - } -} diff --git a/app/src/main/java/net/oschina/app/fragment/UserCenterFragment.java b/app/src/main/java/net/oschina/app/fragment/UserCenterFragment.java deleted file mode 100644 index 4acc36494..000000000 --- a/app/src/main/java/net/oschina/app/fragment/UserCenterFragment.java +++ /dev/null @@ -1,473 +0,0 @@ -package net.oschina.app.fragment; - -import android.content.DialogInterface; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v7.app.AlertDialog; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AbsListView; -import android.widget.AbsListView.OnScrollListener; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemClickListener; -import android.widget.ImageView; -import android.widget.ListView; -import android.widget.TextView; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.adapter.ActiveAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseFragment; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Active; -import net.oschina.app.bean.Result; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.bean.User; -import net.oschina.app.bean.UserInformation; -import net.oschina.app.ui.empty.EmptyLayout; -import net.oschina.app.util.DialogHelp; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TDevice; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import net.oschina.app.widget.AvatarView; - - -import java.io.ByteArrayInputStream; -import java.util.List; - -import butterknife.ButterKnife; -import butterknife.InjectView; -import cz.msebera.android.httpclient.Header; - -/** - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年10月29日 下午2:33:18 - * - */ - -public class UserCenterFragment extends BaseFragment implements - OnItemClickListener, OnScrollListener { - - private static final Object FEMALE = "女"; - - @InjectView(R.id.error_layout) - EmptyLayout mEmptyView; - - @InjectView(R.id.lv_user_active) - ListView mListView; - private ImageView mIvAvatar, mIvGender; - private TextView mTvName, mTvFollowing, mTvFollower, mTvSore, - mBtnPrivateMsg, mBtnFollowUser, mTvLastestLoginTime; - - private ActiveAdapter mAdapter; - private int mHisUid; - private String mHisName; - private int mUid; - private User mUser; - - private int mActivePage = 0; - - private final AsyncHttpResponseHandler mActiveHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - UserInformation information = XmlUtils.toBean( - UserInformation.class, new ByteArrayInputStream(arg2)); - mUser = information.getUser(); - fillUI(); - List data = information.getActiveList(); - if (mState == STATE_REFRESH) - mAdapter.clear(); - mAdapter.addData(data); - mEmptyView.setErrorType(EmptyLayout.HIDE_LAYOUT); - if (data.size() == 0 && mState == STATE_REFRESH) { - mEmptyView.setErrorType(EmptyLayout.NODATA); - mAdapter.setState(ListBaseAdapter.STATE_NO_MORE); - } else if (data.size() == 0) { - if (mState == STATE_REFRESH) - mAdapter.setState(ListBaseAdapter.STATE_NO_MORE); - else - mAdapter.setState(ListBaseAdapter.STATE_NO_MORE); - } else { - mAdapter.setState(ListBaseAdapter.STATE_LOAD_MORE); - } - } catch (Exception e) { - onFailure(arg0, arg1, arg2, e); - e.printStackTrace(); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - mEmptyView.setErrorType(EmptyLayout.NETWORK_ERROR); - } - - @Override - public void onFinish() { - mState = STATE_NONE; - } - }; - - @Override - public View onCreateView(LayoutInflater inflater, - @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - super.onCreateView(inflater, container, savedInstanceState); - View view = inflater.inflate(R.layout.fragment_user_center, container, - false); - - Bundle args = getArguments(); - - mHisUid = args.getInt("his_id", 0); - mHisName = args.getString("his_name"); - mUid = AppContext.getInstance().getLoginUid(); - ButterKnife.inject(this, view); - initView(view); - - return view; - } - - @Override - public void onClick(View v) { - final int id = v.getId(); - switch (id) { - case R.id.iv_avatar: - UIHelper.showUserAvatar(getActivity(), mUser.getPortrait()); - break; - case R.id.ly_following: - UIHelper.showFriends(getActivity(), mUser.getId(), 0); - break; - case R.id.ly_follower: - UIHelper.showFriends(getActivity(), mUser.getId(), 1); - break; - case R.id.tv_follow_user: - handleUserRelation(); - break; - case R.id.tv_private_message: - if (mHisUid == AppContext.getInstance().getLoginUid()) { - AppContext.showToast("不能给自己发送留言:)"); - return; - } - if (!AppContext.getInstance().isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - UIHelper.showMessageDetail(getActivity(), mHisUid, mHisName); - break; - case R.id.tv_blog: - UIHelper.showUserBlog(getActivity(), mHisUid); - break; - case R.id.tv_information: - showInformationDialog(); - break; - default: - break; - } - } - - @Override - public void initView(View view) { - mListView.setOnItemClickListener(this); - mListView.setOnScrollListener(this); - - View header = LayoutInflater.from(getActivity()).inflate( - R.layout.fragment_user_center_header, null, false); - - mIvAvatar = (ImageView) header.findViewById(R.id.iv_avatar); - mIvAvatar.setOnClickListener(this); - mIvGender = (ImageView) header.findViewById(R.id.iv_gender); - mTvName = (TextView) header.findViewById(R.id.tv_name); - mTvFollowing = (TextView) header.findViewById(R.id.tv_following_count); - header.findViewById(R.id.ly_following).setOnClickListener(this); - mTvFollower = (TextView) header.findViewById(R.id.tv_follower_count); - header.findViewById(R.id.ly_follower).setOnClickListener(this); - mTvSore = (TextView) header.findViewById(R.id.tv_score); - mTvLastestLoginTime = (TextView) header - .findViewById(R.id.tv_latest_login_time); - - mBtnPrivateMsg = (TextView) header - .findViewById(R.id.tv_private_message); - mBtnPrivateMsg.setOnClickListener(this); - mBtnFollowUser = (TextView) header.findViewById(R.id.tv_follow_user); - mBtnFollowUser.setOnClickListener(this); - - header.findViewById(R.id.tv_blog).setOnClickListener(this); - header.findViewById(R.id.tv_information).setOnClickListener(this); - - mListView.addHeaderView(header); - - mBtnPrivateMsg.setOnClickListener(this); - mBtnFollowUser.setOnClickListener(this); - - if (mAdapter == null) { - mAdapter = new ActiveAdapter(); - - fristSendGetUserInfomation(); - } - mListView.setAdapter(mAdapter); - - mEmptyView.setOnLayoutClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - fristSendGetUserInfomation(); - } - }); - } - - private void fristSendGetUserInfomation() { - mState = STATE_REFRESH; - mListView.setVisibility(View.GONE); - mEmptyView.setErrorType(EmptyLayout.NETWORK_LOADING); - sendGetUserInfomation(); - } - - private void sendGetUserInfomation() { - OSChinaApi.getUserInformation(mUid, mHisUid, mHisName, mActivePage, - mActiveHandler); - } - - private void fillUI() { - mListView.setVisibility(View.VISIBLE); - ((AvatarView) mIvAvatar).setAvatarUrl(mUser.getPortrait()); - mHisUid = mUser.getId(); - mHisName = mUser.getName(); - mTvName.setText(mHisName); - - int genderIcon = R.drawable.userinfo_icon_male; - if (FEMALE.equals(mUser.getGender())) { - genderIcon = R.drawable.userinfo_icon_female; - } - mIvGender.setBackgroundResource(genderIcon); - - mTvFollowing.setText(mUser.getFollowers() + ""); - mTvFollower.setText(mUser.getFans() + ""); - mTvSore.setText(mUser.getScore() + ""); - mTvLastestLoginTime.setText(getString(R.string.latest_login_time, - StringUtils.friendly_time(mUser.getLatestonline()))); - updateUserRelation(); - } - - private void updateUserRelation() { - switch (mUser.getRelation()) { - case User.RELATION_TYPE_BOTH: - mBtnFollowUser.setCompoundDrawablesWithIntrinsicBounds( - R.drawable.ic_follow_each_other, 0, 0, 0); - mBtnFollowUser.setText(R.string.follow_each_other); - mBtnFollowUser.setTextColor(getResources().getColor(R.color.black)); - mBtnFollowUser - .setBackgroundResource(R.drawable.btn_small_white_selector); - break; - case User.RELATION_TYPE_FANS_HIM: - mBtnFollowUser.setCompoundDrawablesWithIntrinsicBounds( - R.drawable.ic_followed, 0, 0, 0); - mBtnFollowUser.setText(R.string.unfollow_user); - mBtnFollowUser.setTextColor(getResources().getColor(R.color.black)); - mBtnFollowUser - .setBackgroundResource(R.drawable.btn_small_white_selector); - break; - case User.RELATION_TYPE_FANS_ME: - mBtnFollowUser.setCompoundDrawablesWithIntrinsicBounds( - R.drawable.ic_add_follow, 0, 0, 0); - mBtnFollowUser.setText(R.string.follow_user); - mBtnFollowUser.setTextColor(getResources().getColor(R.color.white)); - mBtnFollowUser - .setBackgroundResource(R.drawable.btn_small_green_selector); - break; - case User.RELATION_TYPE_NULL: - mBtnFollowUser.setCompoundDrawablesWithIntrinsicBounds( - R.drawable.ic_add_follow, 0, 0, 0); - mBtnFollowUser.setText(R.string.follow_user); - mBtnFollowUser.setTextColor(getResources().getColor(R.color.white)); - mBtnFollowUser - .setBackgroundResource(R.drawable.btn_small_green_selector); - break; - } - int padding = (int) TDevice.dpToPixel(20); - mBtnFollowUser.setPadding(padding, 0, padding, 0); - } - - private AlertDialog mInformationDialog; - - private void showInformationDialog() { - if (mInformationDialog == null) { - mInformationDialog = DialogHelp.getDialog(getActivity()).show(); - View view = LayoutInflater.from(getActivity()).inflate( - R.layout.fragment_user_center_information, null); - ((TextView) view.findViewById(R.id.tv_join_time)) - .setText(StringUtils.friendly_time(mUser.getJointime())); - ((TextView) view.findViewById(R.id.tv_location)) - .setText(StringUtils.getString(mUser.getFrom())); - ((TextView) view.findViewById(R.id.tv_development_platform)) - .setText(StringUtils.getString(mUser.getDevplatform())); - ((TextView) view.findViewById(R.id.tv_academic_focus)) - .setText(StringUtils.getString(mUser.getExpertise())); - mInformationDialog.setContentView(view); - } - - mInformationDialog.show(); - } - - private void handleUserRelation() { - if (mUser == null) - return; - // 判断登录 - final AppContext ac = AppContext.getInstance(); - if (!ac.isLogin()) { - UIHelper.showLoginActivity(getActivity()); - return; - } - String dialogTitle = ""; - int relationAction = 0; - switch (mUser.getRelation()) { - case User.RELATION_TYPE_BOTH: - dialogTitle = "确定取消互粉吗?"; - relationAction = User.RELATION_ACTION_DELETE; - break; - case User.RELATION_TYPE_FANS_HIM: - dialogTitle = "确定取消关注吗?"; - relationAction = User.RELATION_ACTION_DELETE; - break; - case User.RELATION_TYPE_FANS_ME: - dialogTitle = "确定关注Ta吗?"; - relationAction = User.RELATION_ACTION_ADD; - break; - case User.RELATION_TYPE_NULL: - dialogTitle = "确定关注Ta吗?"; - relationAction = User.RELATION_ACTION_ADD; - break; - } - final int ra = relationAction; - - DialogHelp.getConfirmDialog(getActivity(), dialogTitle, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - sendUpdateRelcationRequest(ra); - } - }).show(); - } - - private void sendUpdateRelcationRequest(int ra) { - OSChinaApi.updateRelation(mUid, mHisUid, ra, - new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - Result result = XmlUtils.toBean(ResultBean.class, - new ByteArrayInputStream(arg2)).getResult(); - if (result.OK()) { - switch (mUser.getRelation()) { - case User.RELATION_TYPE_BOTH: - mBtnFollowUser - .setCompoundDrawablesWithIntrinsicBounds( - R.drawable.ic_add_follow, - 0, 0, 0); - mBtnFollowUser - .setText(R.string.follow_user); - mBtnFollowUser.setTextColor(getResources() - .getColor(R.color.white)); - mBtnFollowUser - .setBackgroundResource(R.drawable.btn_small_green_selector); - mUser.setRelation(User.RELATION_TYPE_FANS_ME); - break; - case User.RELATION_TYPE_FANS_HIM: - mBtnFollowUser - .setCompoundDrawablesWithIntrinsicBounds( - R.drawable.ic_add_follow, - 0, 0, 0); - mBtnFollowUser - .setText(R.string.follow_user); - mBtnFollowUser.setTextColor(getResources() - .getColor(R.color.white)); - mBtnFollowUser - .setBackgroundResource(R.drawable.btn_small_green_selector); - mUser.setRelation(User.RELATION_TYPE_NULL); - break; - case User.RELATION_TYPE_FANS_ME: - mBtnFollowUser - .setCompoundDrawablesWithIntrinsicBounds( - R.drawable.ic_followed, 0, - 0, 0); - mBtnFollowUser - .setText(R.string.follow_each_other); - mBtnFollowUser.setTextColor(getResources() - .getColor(R.color.black)); - mBtnFollowUser - .setBackgroundResource(R.drawable.btn_small_white_selector); - mUser.setRelation(User.RELATION_TYPE_BOTH); - break; - case User.RELATION_TYPE_NULL: - mBtnFollowUser - .setCompoundDrawablesWithIntrinsicBounds( - R.drawable.ic_followed, 0, - 0, 0); - mBtnFollowUser - .setText(R.string.unfollow_user); - mBtnFollowUser.setTextColor(getResources() - .getColor(R.color.black)); - mBtnFollowUser - .setBackgroundResource(R.drawable.btn_small_white_selector); - mUser.setRelation(User.RELATION_TYPE_FANS_HIM); - break; - } - int padding = (int) TDevice.dpToPixel(20); - mBtnFollowUser.setPadding(padding, 0, padding, - 0); - } - AppContext.showToastShort(result.getErrorMessage()); - } catch (Exception e) { - e.printStackTrace(); - onFailure(arg0, arg1, arg2, e); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) {} - }); - } - - @Override - public void initData() {} - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - if (position - 1 < 0) { - return; - } - Active active = (Active) mAdapter.getItem(position - 1); - if (active != null) - UIHelper.showActiveRedirect(view.getContext(), active); - } - - @Override - public void onScroll(AbsListView view, int firstVisibleItem, - int visibleItemCount, int totalItemCount) { - // 数据已经全部加载,或数据为空时,或正在加载,不处理滚动事件 - if (mState == STATE_NOMORE || mState == STATE_LOADMORE - || mState == STATE_REFRESH) { - return; - } - if (mAdapter != null - && mAdapter.getDataSize() > 0 - && mListView.getLastVisiblePosition() == (mListView.getCount() - 1)) { - if (mState == STATE_NONE - && mAdapter.getState() == ListBaseAdapter.STATE_LOAD_MORE) { - mState = STATE_LOADMORE; - mActivePage++; - sendGetUserInfomation(); - } - } - } - - @Override - public void onScrollStateChanged(AbsListView view, int scrollState) {} -} diff --git a/app/src/main/java/net/oschina/app/fragment/UserFavoriteFragment.java b/app/src/main/java/net/oschina/app/fragment/UserFavoriteFragment.java deleted file mode 100644 index aae6ba005..000000000 --- a/app/src/main/java/net/oschina/app/fragment/UserFavoriteFragment.java +++ /dev/null @@ -1,79 +0,0 @@ -package net.oschina.app.fragment; - -import java.io.InputStream; -import java.io.Serializable; - -import net.oschina.app.AppContext; -import net.oschina.app.adapter.UserFavoriteAdapter; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.BaseListFragment; -import net.oschina.app.bean.Favorite; -import net.oschina.app.bean.FavoriteList; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; -import android.view.View; -import android.widget.AdapterView; - -public class UserFavoriteFragment extends BaseListFragment { - - protected static final String TAG = UserFavoriteFragment.class - .getSimpleName(); - private static final String CACHE_KEY_PREFIX = "userfavorite_"; - - @Override - protected UserFavoriteAdapter getListAdapter() { - return new UserFavoriteAdapter(); - } - - @Override - protected String getCacheKeyPrefix() { - return CACHE_KEY_PREFIX + mCatalog; - } - - @Override - protected FavoriteList parseList(InputStream is) throws Exception { - - FavoriteList list = XmlUtils.toBean(FavoriteList.class, is); - return list; - } - - @Override - protected FavoriteList readList(Serializable seri) { - return ((FavoriteList) seri); - } - - @Override - protected void sendRequestData() { - OSChinaApi.getFavoriteList(AppContext.getInstance().getLoginUid(), - mCatalog, mCurrentPage, mHandler); - } - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - - Favorite favorite = (Favorite) mAdapter.getItem(position); - if (favorite != null) { - switch (favorite.getType()) { - - case Favorite.CATALOG_BLOGS: - UIHelper.showUrlRedirect(getActivity(), favorite.getUrl()); - break; - case Favorite.CATALOG_CODE: - UIHelper.showUrlRedirect(getActivity(), favorite.getUrl()); - break; - case Favorite.CATALOG_NEWS: - UIHelper.showUrlRedirect(getActivity(), favorite.getUrl()); - break; - case Favorite.CATALOG_SOFTWARE: - UIHelper.showUrlRedirect(getActivity(), favorite.getUrl()); - break; - case Favorite.CATALOG_TOPIC: - UIHelper.showUrlRedirect(getActivity(), favorite.getUrl()); - break; - - } - } - - } -} diff --git a/app/src/main/java/net/oschina/app/interf/BaseFragmentInterface.java b/app/src/main/java/net/oschina/app/interf/BaseFragmentInterface.java deleted file mode 100644 index 486c93035..000000000 --- a/app/src/main/java/net/oschina/app/interf/BaseFragmentInterface.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.oschina.app.interf; - -import android.view.View; - - -/** - * 基类fragment实现接口 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年9月25日 上午11:00:25 - * - */ -public interface BaseFragmentInterface { - - public void initView(View view); - - public void initData(); -} diff --git a/app/src/main/java/net/oschina/app/interf/BaseViewInterface.java b/app/src/main/java/net/oschina/app/interf/BaseViewInterface.java deleted file mode 100644 index 2ea5be2df..000000000 --- a/app/src/main/java/net/oschina/app/interf/BaseViewInterface.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.oschina.app.interf; - -/** - * - * @author deyi - * - */ -public interface BaseViewInterface { - - public void initView(); - - public void initData(); - -} diff --git a/app/src/main/java/net/oschina/app/interf/ICallbackResult.java b/app/src/main/java/net/oschina/app/interf/ICallbackResult.java deleted file mode 100644 index 929f80c08..000000000 --- a/app/src/main/java/net/oschina/app/interf/ICallbackResult.java +++ /dev/null @@ -1,12 +0,0 @@ -package net.oschina.app.interf; - -/** - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年11月18日 上午11:18:28 - * - */ - -public interface ICallbackResult { - - public void OnBackResult(Object s); -} diff --git a/app/src/main/java/net/oschina/app/interf/OnTabReselectListener.java b/app/src/main/java/net/oschina/app/interf/OnTabReselectListener.java deleted file mode 100644 index ca491922c..000000000 --- a/app/src/main/java/net/oschina/app/interf/OnTabReselectListener.java +++ /dev/null @@ -1,12 +0,0 @@ -package net.oschina.app.interf; - -/** - * 当tabHost再次被点击时 - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2014年11月17日 上午11:00:15 - * - */ -public interface OnTabReselectListener { - - public void onTabReselect(); -} diff --git a/app/src/main/java/net/oschina/app/interf/OnWebViewImageListener.java b/app/src/main/java/net/oschina/app/interf/OnWebViewImageListener.java deleted file mode 100644 index 7ea96a576..000000000 --- a/app/src/main/java/net/oschina/app/interf/OnWebViewImageListener.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.oschina.app.interf; - -/** - * 监听webview上的图片 - * - * @author yeguozhong@yeah.net - * - */ -public interface OnWebViewImageListener { - - /** - * 点击webview上的图片,传入该缩略图的大图Url - * @param bigImageUrl - */ - void showImagePreview(String bigImageUrl); - -} diff --git a/app/src/main/java/net/oschina/app/service/DownloadService.java b/app/src/main/java/net/oschina/app/service/DownloadService.java deleted file mode 100644 index 9da874a9c..000000000 --- a/app/src/main/java/net/oschina/app/service/DownloadService.java +++ /dev/null @@ -1,302 +0,0 @@ -package net.oschina.app.service; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.net.HttpURLConnection; -import java.net.URL; - -import net.oschina.app.AppConfig; -import net.oschina.app.R; -import net.oschina.app.interf.ICallbackResult; -import net.oschina.app.ui.MainActivity; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TDevice; -import android.app.Notification; -import android.app.NotificationManager; -import android.app.PendingIntent; -import android.app.Service; -import android.content.Context; -import android.content.Intent; -import android.os.Binder; -import android.os.Handler; -import android.os.IBinder; -import android.os.Message; -import android.widget.RemoteViews; - -/** - * download service - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年11月18日 下午3:02:36 - * - */ -public class DownloadService extends Service { - - public static final String BUNDLE_KEY_DOWNLOAD_URL = "download_url"; - - public static final String BUNDLE_KEY_TITLE = "title"; - - private final String tag = "download"; - private static final int NOTIFY_ID = 0; - private int progress; - private NotificationManager mNotificationManager; - private boolean canceled; - - private String downloadUrl; - - private String mTitle = "正在下载%s"; - - private String saveFileName = AppConfig.DEFAULT_SAVE_FILE_PATH; - - private ICallbackResult callback; - - private DownloadBinder binder; - - private boolean serviceIsDestroy = false; - - private Context mContext = this; - - private Thread downLoadThread; - - private Notification mNotification; - - private Handler mHandler = new Handler() { - - @Override - public void handleMessage(Message msg) { - // TODO Auto-generated method stub - super.handleMessage(msg); - switch (msg.what) { - case 0: - // 下载完毕 - mNotificationManager.cancel(NOTIFY_ID); - installApk(); - break; - case 2: - // 取消通知 - mNotificationManager.cancel(NOTIFY_ID); - break; - case 1: - int rate = msg.arg1; - if (rate < 100) { - RemoteViews contentview = mNotification.contentView; - contentview.setTextViewText(R.id.tv_download_state, mTitle + "(" + rate - + "%" + ")"); - contentview.setProgressBar(R.id.pb_download, 100, rate, - false); - } else { - // 下载完毕后变换通知形式 - mNotification.flags = Notification.FLAG_AUTO_CANCEL; - mNotification.contentView = null; - Intent intent = new Intent(mContext, MainActivity.class); - // 告知已完成 - intent.putExtra("completed", "yes"); - // 更新参数,注意flags要使用FLAG_UPDATE_CURRENT - PendingIntent contentIntent = PendingIntent.getActivity( - mContext, 0, intent, - PendingIntent.FLAG_UPDATE_CURRENT); -// mNotification.setLatestEventInfo(mContext, "下载完成", -// "文件已下载完毕", contentIntent); - serviceIsDestroy = true; - stopSelf();// 停掉服务自身 - } - mNotificationManager.notify(NOTIFY_ID, mNotification); - break; - } - } - }; - - @Override - public IBinder onBind(Intent intent) { - downloadUrl = intent.getStringExtra(BUNDLE_KEY_DOWNLOAD_URL); - saveFileName = saveFileName + getSaveFileName(downloadUrl); - mTitle = String.format(mTitle, intent.getStringExtra(BUNDLE_KEY_TITLE)); - return binder; - } - - private String getSaveFileName(String downloadUrl) { - if (downloadUrl == null || StringUtils.isEmpty(downloadUrl)) { - return ""; - } - return downloadUrl.substring(downloadUrl.lastIndexOf("/")); - } - - @Override - public void onCreate() { - super.onCreate(); - binder = new DownloadBinder(); - mNotificationManager = (NotificationManager) getSystemService(android.content.Context.NOTIFICATION_SERVICE); - stopForeground(true);// 这个不确定是否有作用 - } - - private void startDownload() { - canceled = false; - downloadApk(); - } - - /** - * 创建通知 - */ - private void setUpNotification() { - int icon = R.drawable.ic_notification; - CharSequence tickerText = "准备下载"; - long when = System.currentTimeMillis(); - mNotification = new Notification(icon, tickerText, when); - ; - // 放置在"正在运行"栏目中 - mNotification.flags = Notification.FLAG_ONGOING_EVENT; - - RemoteViews contentView = new RemoteViews(getPackageName(), - R.layout.download_notification_show); - contentView.setTextViewText(R.id.tv_download_state, mTitle); - // 指定个性化视图 - mNotification.contentView = contentView; - - Intent intent = new Intent(this, MainActivity.class); - PendingIntent contentIntent = PendingIntent.getActivity(this, 0, - intent, PendingIntent.FLAG_UPDATE_CURRENT); - - // 指定内容意图 - mNotification.contentIntent = contentIntent; - mNotificationManager.notify(NOTIFY_ID, mNotification); - } - - private void downloadApk() { - downLoadThread = new Thread(mdownApkRunnable); - downLoadThread.start(); - } - - /** - * 安装apk - */ - private void installApk() { - File apkfile = new File(saveFileName); - if (!apkfile.exists()) { - return; - } - TDevice.installAPK(mContext, apkfile); - } - - private Runnable mdownApkRunnable = new Runnable() { - @Override - public void run() { - File file = new File(AppConfig.DEFAULT_SAVE_FILE_PATH); - if (!file.exists()) { - file.mkdirs(); - } - String apkFile = saveFileName; - File saveFile = new File(apkFile); - try { - downloadUpdateFile(downloadUrl, saveFile); - } catch (Exception e) { - e.printStackTrace(); - } - } - }; - - public long downloadUpdateFile(String downloadUrl, File saveFile) - throws Exception { - int downloadCount = 0; - int currentSize = 0; - long totalSize = 0; - int updateTotalSize = 0; - - HttpURLConnection httpConnection = null; - InputStream is = null; - FileOutputStream fos = null; - - try { - URL url = new URL(downloadUrl); - httpConnection = (HttpURLConnection) url.openConnection(); - httpConnection - .setRequestProperty("User-Agent", "PacificHttpClient"); - if (currentSize > 0) { - httpConnection.setRequestProperty("RANGE", "bytes=" - + currentSize + "-"); - } - httpConnection.setConnectTimeout(10000); - httpConnection.setReadTimeout(20000); - updateTotalSize = httpConnection.getContentLength(); - if (httpConnection.getResponseCode() == 404) { - throw new Exception("fail!"); - } - is = httpConnection.getInputStream(); - fos = new FileOutputStream(saveFile, false); - byte buffer[] = new byte[1024]; - int readsize = 0; - while ((readsize = is.read(buffer)) > 0) { - fos.write(buffer, 0, readsize); - totalSize += readsize; - // 为了防止频繁的通知导致应用吃紧,百分比增加10才通知一次 - if ((downloadCount == 0) - || (int) (totalSize * 100 / updateTotalSize) - 10 >= downloadCount) { - downloadCount += 10; - // 更新进度 - Message msg = mHandler.obtainMessage(); - msg.what = 1; - msg.arg1 = downloadCount; - mHandler.sendMessage(msg); - if (callback != null) - callback.OnBackResult(progress); - } - } - - // 下载完成通知安装 - mHandler.sendEmptyMessage(0); - // 下载完了,cancelled也要设置 - canceled = true; - - } finally { - if (httpConnection != null) { - httpConnection.disconnect(); - } - if (is != null) { - is.close(); - } - if (fos != null) { - fos.close(); - } - } - return totalSize; - } - - public class DownloadBinder extends Binder { - public void start() { - if (downLoadThread == null || !downLoadThread.isAlive()) { - progress = 0; - setUpNotification(); - new Thread() { - public void run() { - // 下载 - startDownload(); - }; - }.start(); - } - } - - public void cancel() { - canceled = true; - } - - public int getProgress() { - return progress; - } - - public boolean isCanceled() { - return canceled; - } - - public boolean serviceIsDestroy() { - return serviceIsDestroy; - } - - public void cancelNotification() { - mHandler.sendEmptyMessage(2); - } - - public void addCallback(ICallbackResult callback) { - DownloadService.this.callback = callback; - } - } -} diff --git a/app/src/main/java/net/oschina/app/service/INoticeService.aidl b/app/src/main/java/net/oschina/app/service/INoticeService.aidl deleted file mode 100644 index fcd7d7b32..000000000 --- a/app/src/main/java/net/oschina/app/service/INoticeService.aidl +++ /dev/null @@ -1,8 +0,0 @@ -package net.oschina.app.service; - -interface INoticeService -{ - void scheduleNotice(); - void requestNotice(); - void clearNotice(int uid,int type); -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/service/NoticeService.java b/app/src/main/java/net/oschina/app/service/NoticeService.java deleted file mode 100644 index 3a5b08dab..000000000 --- a/app/src/main/java/net/oschina/app/service/NoticeService.java +++ /dev/null @@ -1,308 +0,0 @@ -package net.oschina.app.service; - -import java.io.ByteArrayInputStream; -import java.lang.ref.WeakReference; - -import net.oschina.app.AppConfig; -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.bean.Constants; -import net.oschina.app.bean.Notice; -import net.oschina.app.bean.NoticeDetail; -import net.oschina.app.bean.Result; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.broadcast.AlarmReceiver; -import net.oschina.app.ui.MainActivity; -import net.oschina.app.util.UIHelper; -import net.oschina.app.util.XmlUtils; - -import cz.msebera.android.httpclient.Header; -import android.app.AlarmManager; -import android.app.Notification; -import android.app.PendingIntent; -import android.app.Service; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.res.Resources; -import android.net.Uri; -import android.os.IBinder; -import android.os.RemoteException; -import android.support.v4.app.NotificationCompat; -import android.support.v4.app.NotificationManagerCompat; - -import com.loopj.android.http.AsyncHttpResponseHandler; - -public class NoticeService extends Service { - public static final String INTENT_ACTION_GET = "net.oschina.app.service.GET_NOTICE"; - public static final String INTENT_ACTION_CLEAR = "net.oschina.app.service.CLEAR_NOTICE"; - public static final String INTENT_ACTION_BROADCAST = "net.oschina.app.service.BROADCAST"; - public static final String INTENT_ACTION_SHUTDOWN = "net.oschina.app.service.SHUTDOWN"; - public static final String INTENT_ACTION_REQUEST = "net.oschina.app.service.REQUEST"; - public static final String BUNDLE_KEY_TPYE = "bundle_key_type"; - - private static final long INTERVAL = 1000 * 120; - private AlarmManager mAlarmMgr; - - private Notice mNotice; - - private final BroadcastReceiver mReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - String action = intent.getAction(); - if (Constants.INTENT_ACTION_NOTICE.equals(action)) { - Notice notice = (Notice) intent.getSerializableExtra("notice_bean"); - int atmeCount = notice.getAtmeCount();// @我 - int msgCount = notice.getMsgCount();// 私信 - int reviewCount = notice.getReviewCount();// 评论 - int newFansCount = notice.getNewFansCount();// 新粉丝 - int newLikeCount = notice.getNewLikeCount();// 点赞数 - int activeCount = atmeCount + reviewCount + msgCount - + newFansCount + newLikeCount; - if (activeCount == 0) { - NotificationManagerCompat.from(NoticeService.this).cancel( - R.string.you_have_news_messages); - } - } else if (INTENT_ACTION_BROADCAST.equals(action)) { - if (mNotice != null) { - UIHelper.sendBroadCast(NoticeService.this, mNotice); - } - } else if (INTENT_ACTION_SHUTDOWN.equals(action)) { - stopSelf(); - } else if (INTENT_ACTION_REQUEST.equals(action)) { - requestNotice(); - } - } - }; - - @Override - public IBinder onBind(Intent intent) { - return mBinder; - } - - @Override - public void onCreate() { - super.onCreate(); - mAlarmMgr = (AlarmManager) getSystemService(ALARM_SERVICE); - startRequestAlarm(); - requestNotice(); - - IntentFilter filter = new IntentFilter(INTENT_ACTION_BROADCAST); - filter.addAction(Constants.INTENT_ACTION_NOTICE); - filter.addAction(INTENT_ACTION_SHUTDOWN); - filter.addAction(INTENT_ACTION_REQUEST); - registerReceiver(mReceiver, filter); - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - return super.onStartCommand(intent, flags, startId); - } - - @Override - public void onDestroy() { - cancelRequestAlarm(); - unregisterReceiver(mReceiver); - super.onDestroy(); - } - - private void startRequestAlarm() { - cancelRequestAlarm(); - // 从1秒后开始,每隔2分钟执行getOperationIntent() - mAlarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, - System.currentTimeMillis() + 1000, INTERVAL, - getOperationIntent()); - } - - /** - * 即使启动PendingIntent的原进程结束了的话,PendingIntent本身仍然还存在,可在其他进程( - * PendingIntent被递交到的其他程序)中继续使用. - * 如果我在从系统中提取一个PendingIntent的,而系统中有一个和你描述的PendingIntent对等的PendingInent, - * 那么系统会直接返回和该PendingIntent其实是同一token的PendingIntent, - * 而不是一个新的token和PendingIntent。然而你在从提取PendingIntent时,通过FLAG_CANCEL_CURRENT参数, - * 让这个老PendingIntent的先cancel()掉,这样得到的pendingInten和其token的就是新的了。 - */ - private void cancelRequestAlarm() { - mAlarmMgr.cancel(getOperationIntent()); - } - - /** - * OSC采用轮询方式实现消息推送
    - * 每次被调用都去执行一次{@link #AlarmReceiver}onReceive()方法 - * - * @return - */ - private PendingIntent getOperationIntent() { - Intent intent = new Intent(this, AlarmReceiver.class); - PendingIntent operation = PendingIntent.getBroadcast(this, 0, intent, - PendingIntent.FLAG_UPDATE_CURRENT); - return operation; - } - - private void clearNotice(int uid, int type) { - OSChinaApi.clearNotice(uid, type, mClearNoticeHandler); - } - - private int lastNotifiyCount; - - private void notification(Notice notice) { - int atmeCount = notice.getAtmeCount(); - int msgCount = notice.getMsgCount(); - int reviewCount = notice.getReviewCount(); - int newFansCount = notice.getNewFansCount(); - int newLikeCount = notice.getNewLikeCount(); - - int count = atmeCount + msgCount + reviewCount + newFansCount + newLikeCount; - - if (count == 0) { - lastNotifiyCount = 0; - NotificationManagerCompat.from(this).cancel( - R.string.you_have_news_messages); - return; - } - if (count == lastNotifiyCount) - return; - - lastNotifiyCount = count; - - Resources res = getResources(); - String contentTitle = res.getString(R.string.you_have_news_messages, - count); - String contentText; - StringBuffer sb = new StringBuffer(); - if (atmeCount > 0) { - sb.append(getString(R.string.atme_count, atmeCount)).append(" "); - } - if (msgCount > 0) { - sb.append(getString(R.string.msg_count, msgCount)).append(" "); - } - if (reviewCount > 0) { - sb.append(getString(R.string.review_count, reviewCount)) - .append(" "); - } - if (newFansCount > 0) { - sb.append(getString(R.string.fans_count, newFansCount)); - } - if (newLikeCount > 0) { - sb.append(getString(R.string.like_count, newLikeCount)); - } - contentText = sb.toString(); - - Intent intent = new Intent(this, MainActivity.class); - intent.putExtra("NOTICE", true); - - PendingIntent pi = PendingIntent.getActivity(this, 1000, intent, - PendingIntent.FLAG_CANCEL_CURRENT); - - NotificationCompat.Builder builder = new NotificationCompat.Builder( - this).setTicker(contentTitle).setContentTitle(contentTitle) - .setContentText(contentText).setAutoCancel(true) - .setContentIntent(pi).setSmallIcon(R.drawable.ic_notification); - - if (AppContext.get(AppConfig.KEY_NOTIFICATION_SOUND, true)) { - builder.setSound(Uri.parse("android.resource://" - + AppContext.getInstance().getPackageName() + "/" - + R.raw.notificationsound)); - } - if (AppContext.get(AppConfig.KEY_NOTIFICATION_VIBRATION, true)) { - long[] vibrate = { 0, 10, 20, 30 }; - builder.setVibrate(vibrate); - } - - Notification notification = builder.build(); - - NotificationManagerCompat.from(this).notify( - R.string.you_have_news_messages, notification); - } - - private final AsyncHttpResponseHandler mGetNoticeHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - Notice notice = XmlUtils.toBean(NoticeDetail.class, - arg2).getNotice(); - if (notice != null) { - UIHelper.sendBroadCast(NoticeService.this, notice); - if (AppContext.get(AppConfig.KEY_NOTIFICATION_ACCEPT, true)) { - notification(notice); - } - mNotice = notice; - } else { -// ResultBean resultBean = XmlUtils.toBean(ResultBean.class, arg2); -// if (resultBean != null && resultBean.getResult() != null) { -// AppContext appContext = AppContext.getInstance(); -// if (appContext != null) { -// appContext.Logout(); -// } -// } - } - } catch (Exception e) { - e.printStackTrace(); - onFailure(arg0, arg1, arg2, e); - } - }; - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) { - arg3.printStackTrace(); - } - }; - - private final AsyncHttpResponseHandler mClearNoticeHandler = new AsyncHttpResponseHandler() { - - @Override - public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { - try { - ResultBean rsb = XmlUtils.toBean(ResultBean.class, - new ByteArrayInputStream(arg2)); - Result res = rsb.getResult(); - if (res.OK() && rsb.getNotice() != null) { - mNotice = rsb.getNotice(); - UIHelper.sendBroadCast(NoticeService.this, rsb.getNotice()); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void onFailure(int arg0, Header[] arg1, byte[] arg2, - Throwable arg3) {} - }; - - /** - * 请求是否有新通知 - */ - private void requestNotice() { - OSChinaApi.getNotices(mGetNoticeHandler); - } - - private static class ServiceStub extends INoticeService.Stub { - WeakReference mService; - - ServiceStub(NoticeService service) { - mService = new WeakReference(service); - } - - @Override - public void clearNotice(int uid, int type) throws RemoteException { - mService.get().clearNotice(uid, type); - } - - @Override - public void scheduleNotice() throws RemoteException { - mService.get().startRequestAlarm(); - } - - @Override - public void requestNotice() throws RemoteException { - mService.get().requestNotice(); - } - } - - private final IBinder mBinder = new ServiceStub(this); -} diff --git a/app/src/main/java/net/oschina/app/service/NoticeUtils.java b/app/src/main/java/net/oschina/app/service/NoticeUtils.java deleted file mode 100644 index 9d8369479..000000000 --- a/app/src/main/java/net/oschina/app/service/NoticeUtils.java +++ /dev/null @@ -1,116 +0,0 @@ -package net.oschina.app.service; - -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.ServiceConnection; -import android.os.RemoteException; -import android.util.Log; - -import net.oschina.app.AppConfig; -import net.oschina.app.AppContext; -import net.oschina.app.util.TLog; - -import java.util.HashMap; - -public class NoticeUtils { - - public static INoticeService sService = null; - private static HashMap sConnectionMap = new HashMap(); - - public static boolean bindToService(Context context) { - return bindToService(context, null); - } - - public static boolean bindToService(Context context, - ServiceConnection callback) { - context.startService(new Intent(context, NoticeService.class)); - ServiceBinder sb = new ServiceBinder(callback); - sConnectionMap.put(context, sb); - return context.bindService( - (new Intent()).setClass(context, NoticeService.class), sb, 0); - } - - public static void unbindFromService(Context context) { - ServiceBinder sb = sConnectionMap.remove(context); - if (sb == null) { - Log.e("MusicUtils", "Trying to unbind for unknown Context"); - return; - } - context.unbindService(sb); - if (sConnectionMap.isEmpty()) { - // presumably there is nobody interested in the service at this - // point, - // so don't hang on to the ServiceConnection - sService = null; - } - } - - public static void clearNotice(int type) { - if (sService != null) { - try { - sService.clearNotice(AppContext.getInstance().getLoginUid(), - type); - } catch (RemoteException e) { - e.printStackTrace(); - } - } - } - - public static void requestNotice(Context context) { - if (sService != null) { - try { - TLog.log("requestNotice..."); - sService.requestNotice(); - } catch (RemoteException e) { - e.printStackTrace(); - } - } else { - context.sendBroadcast(new Intent( - NoticeService.INTENT_ACTION_REQUEST)); - TLog.log("requestNotice,service is null"); - } - } - - public static void scheduleNotice() { - if (sService != null) { - try { - sService.scheduleNotice(); - } catch (RemoteException e) { - e.printStackTrace(); - } - } - } - - private static class ServiceBinder implements ServiceConnection { - ServiceConnection mCallback; - - ServiceBinder(ServiceConnection callback) { - mCallback = callback; - } - - @Override - public void onServiceConnected(ComponentName className, - android.os.IBinder service) { - sService = INoticeService.Stub.asInterface(service); - if (mCallback != null) { - mCallback.onServiceConnected(className, service); - } - } - - @Override - public void onServiceDisconnected(ComponentName className) { - if (mCallback != null) { - mCallback.onServiceDisconnected(className); - } - sService = null; - } - } - - public static void tryToShutDown(Context context) { - if (AppContext.get(AppConfig.KEY_NOTIFICATION_DISABLE_WHEN_EXIT, true)) { - context.sendBroadcast(new Intent( - NoticeService.INTENT_ACTION_SHUTDOWN)); - } - } -} diff --git a/app/src/main/java/net/oschina/app/service/PublicCommentTask.java b/app/src/main/java/net/oschina/app/service/PublicCommentTask.java deleted file mode 100644 index e5eb65c68..000000000 --- a/app/src/main/java/net/oschina/app/service/PublicCommentTask.java +++ /dev/null @@ -1,90 +0,0 @@ -package net.oschina.app.service; - -import android.os.Parcel; -import android.os.Parcelable; - -public class PublicCommentTask implements Parcelable { - private int catalog; - private int id; - private int uid; - private String content; - private int isPostToMyZone; - - public PublicCommentTask() { - } - - public PublicCommentTask(Parcel source) { - catalog = source.readInt(); - id = source.readInt(); - uid = source.readInt(); - content = source.readString(); - isPostToMyZone = source.readInt(); - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeInt(catalog); - dest.writeInt(id); - dest.writeInt(uid); - dest.writeString(content); - dest.writeInt(isPostToMyZone); - } - - public int getCatalog() { - return catalog; - } - - public void setCatalog(int catalog) { - this.catalog = catalog; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public int getUid() { - return uid; - } - - public void setUid(int uid) { - this.uid = uid; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public int getIsPostToMyZone() { - return isPostToMyZone; - } - - public void setIsPostToMyZone(int isPostToMyZone) { - this.isPostToMyZone = isPostToMyZone; - } - - @Override - public int describeContents() { - return 0; - } - - public static final Parcelable.Creator CREATOR = new Creator() { - - @Override - public PublicCommentTask[] newArray(int size) { - return new PublicCommentTask[size]; - } - - @Override - public PublicCommentTask createFromParcel(Parcel source) { - return new PublicCommentTask(source); - } - }; -} diff --git a/app/src/main/java/net/oschina/app/service/ServerTaskService.java b/app/src/main/java/net/oschina/app/service/ServerTaskService.java deleted file mode 100644 index bbb618a38..000000000 --- a/app/src/main/java/net/oschina/app/service/ServerTaskService.java +++ /dev/null @@ -1,306 +0,0 @@ -package net.oschina.app.service; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import net.oschina.app.AppContext; -import net.oschina.app.R; -import net.oschina.app.api.OperationResponseHandler; -import net.oschina.app.api.remote.OSChinaApi; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.bean.Comment; -import net.oschina.app.bean.Result; -import net.oschina.app.bean.ResultBean; -import net.oschina.app.bean.Tweet; -import net.oschina.app.util.XmlUtils; -import android.app.IntentService; -import android.app.Notification; -import android.app.PendingIntent; -import android.content.Intent; -import android.os.Handler; -import android.os.Looper; -import android.support.v4.app.NotificationCompat; -import android.support.v4.app.NotificationManagerCompat; - -public class ServerTaskService extends IntentService { - private static final String SERVICE_NAME = "ServerTaskService"; - public static final String ACTION_PUB_BLOG_COMMENT = "net.oschina.app.ACTION_PUB_BLOG_COMMENT"; - public static final String ACTION_PUB_COMMENT = "net.oschina.app.ACTION_PUB_COMMENT"; - public static final String ACTION_PUB_POST = "net.oschina.app.ACTION_PUB_POST"; - public static final String ACTION_PUB_TWEET = "net.oschina.app.ACTION_PUB_TWEET"; - public static final String ACTION_PUB_SOFTWARE_TWEET = "net.oschina.app.ACTION_PUB_SOFTWARE_TWEET"; - - public static final String KEY_ADAPTER = "adapter"; - - public static final String BUNDLE_PUB_COMMENT_TASK = "BUNDLE_PUB_COMMENT_TASK"; - public static final String BUNDLE_PUB_POST_TASK = "BUNDLE_PUB_POST_TASK"; - public static final String BUNDLE_PUB_TWEET_TASK = "BUNDLE_PUB_TWEET_TASK"; - public static final String BUNDLE_PUB_SOFTWARE_TWEET_TASK = "BUNDLE_PUB_SOFTWARE_TWEET_TASK"; - public static final String KEY_SOFTID = "soft_id"; - - private static final String KEY_COMMENT = "comment_"; - private static final String KEY_TWEET = "tweet_"; - private static final String KEY_SOFTWARE_TWEET = "software_tweet_"; - private static final String KEY_POST = "post_"; - - public static List penddingTasks = new ArrayList(); - - class PublicCommentResponseHandler extends OperationResponseHandler { - - public PublicCommentResponseHandler(Looper looper, Object... args) { - super(looper, args); - } - - @Override - public void onSuccess(int code, ByteArrayInputStream is, Object[] args) - throws Exception { - PublicCommentTask task = (PublicCommentTask) args[0]; - final int id = task.getId() * task.getUid(); - ResultBean resB = XmlUtils.toBean(ResultBean.class, is); - Result res = resB.getResult(); - if (res.OK()) { - final Comment comment = resB.getComment(); - // UIHelper.sendBroadCastCommentChanged(ServerTaskService.this, - // isBlog, task.getId(), task.getCatalog(), - // Comment.OPT_ADD, comment); - notifySimpleNotifycation(id, - getString(R.string.comment_publish_success), - getString(R.string.comment_blog), - getString(R.string.comment_publish_success), false, - true); - removePenddingTask(KEY_COMMENT + id); - } else { - onFailure(100, res.getErrorMessage(), args); - } - } - - @Override - public void onFailure(int code, String errorMessage, Object[] args) { - PublicCommentTask task = (PublicCommentTask) args[0]; - int id = task.getId() * task.getUid(); - notifySimpleNotifycation(id, - getString(R.string.comment_publish_faile), - getString(R.string.comment_blog), - code == 100 ? errorMessage - : getString(R.string.comment_publish_faile), false, - true); - removePenddingTask(KEY_COMMENT + id); - } - - @Override - public void onFinish() { - tryToStopServie(); - } - } - - class PublicTweetResponseHandler extends OperationResponseHandler { - - String key = null; - - public PublicTweetResponseHandler(Looper looper, Object... args) { - super(looper, args); - key = (String) args[1]; - } - - @Override - public void onSuccess(int code, ByteArrayInputStream is, Object[] args) - throws Exception { - Tweet tweet = (Tweet) args[0]; - final int id = tweet.getId(); - Result res = XmlUtils.toBean(ResultBean.class, is).getResult(); - if (res.OK()) { - notifySimpleNotifycation(id, - getString(R.string.tweet_publish_success), - getString(R.string.tweet_public), - getString(R.string.tweet_publish_success), false, true); - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - cancellNotification(id); - } - }, 3000); - removePenddingTask(key + id); - if (tweet.getImageFilePath() != null) { - File imgFile = new File(tweet.getImageFilePath()); - if (imgFile.exists()) { - imgFile.delete(); - } - } - } else { - onFailure(100, res.getErrorMessage(), args); - } - } - - @Override - public void onFailure(int code, String errorMessage, Object[] args) { - Tweet tweet = (Tweet) args[0]; - int id = tweet.getId(); - notifySimpleNotifycation(id, - getString(R.string.tweet_publish_faile), - getString(R.string.tweet_public), - code == 100 ? errorMessage - : getString(R.string.tweet_publish_faile), false, - true); - removePenddingTask(key + id); - } - - @Override - public void onFinish() { - tryToStopServie(); - } - } - - public ServerTaskService() { - this(SERVICE_NAME); - } - - private synchronized void tryToStopServie() { - if (penddingTasks == null || penddingTasks.size() == 0) { - stopSelf(); - } - } - - private synchronized void addPenddingTask(String key) { - penddingTasks.add(key); - } - - private synchronized void removePenddingTask(String key) { - penddingTasks.remove(key); - } - - public ServerTaskService(String name) { - super(name); - } - - @Override - public void onCreate() { - super.onCreate(); - - } - - @Override - protected void onHandleIntent(Intent intent) { - String action = intent.getAction(); - - if (ACTION_PUB_BLOG_COMMENT.equals(action)) { - PublicCommentTask task = intent - .getParcelableExtra(BUNDLE_PUB_COMMENT_TASK); - if (task != null) { - publicBlogComment(task); - } - } else if (ACTION_PUB_COMMENT.equals(action)) { - PublicCommentTask task = intent - .getParcelableExtra(BUNDLE_PUB_COMMENT_TASK); - if (task != null) { - publicComment(task); - } - } else if (ACTION_PUB_POST.equals(action)) { - // Post post = intent.getParcelableExtra(BUNDLE_PUBLIC_POST_TASK); - // if (post != null) { - // publicPost(post); - // } - } else if (ACTION_PUB_TWEET.equals(action)) { - Tweet tweet = intent.getParcelableExtra(BUNDLE_PUB_TWEET_TASK); - if (tweet != null) { - pubTweet(tweet); - } - } else if (ACTION_PUB_SOFTWARE_TWEET.equals(action)) { - Tweet tweet = intent - .getParcelableExtra(BUNDLE_PUB_SOFTWARE_TWEET_TASK); - int softid = intent.getIntExtra(KEY_SOFTID, -1); - if (tweet != null && softid != -1) { - pubSoftWareTweet(tweet, softid); - } - } - } - - private void publicBlogComment(final PublicCommentTask task) { - int id = task.getId() * task.getUid(); - addPenddingTask(KEY_COMMENT + id); - - notifySimpleNotifycation(id, getString(R.string.comment_publishing), - getString(R.string.comment_blog), - getString(R.string.comment_publishing), true, false); - - OSChinaApi.publicBlogComment(task.getId(), task.getUid(), task - .getContent(), new PublicCommentResponseHandler( - getMainLooper(), task, true)); - } - - private void publicComment(final PublicCommentTask task) { - int id = task.getId() * task.getUid(); - addPenddingTask(KEY_COMMENT + id); - - notifySimpleNotifycation(id, getString(R.string.comment_publishing), - getString(R.string.comment_blog), - getString(R.string.comment_publishing), true, false); - - OSChinaApi.publicComment(task.getCatalog(), task.getId(), - task.getUid(), task.getContent(), task.getIsPostToMyZone(), - new PublicCommentResponseHandler(getMainLooper(), task, false)); - } - - // private void publicPost(Post post) { - // post.setId((int) System.currentTimeMillis()); - // int id = post.getId(); - // addPenddingTask(KEY_POST + id); - // notifySimpleNotifycation(id, getString(R.string.post_publishing), - // getString(R.string.post_public), - // getString(R.string.post_publishing), true, false); - // OSChinaApi.publicPost(post, new - // PublicPostResponseHandler(getMainLooper(), - // post)); - // } - // - private void pubTweet(final Tweet tweet) { - tweet.setId((int) System.currentTimeMillis()); - int id = tweet.getId(); - addPenddingTask(KEY_TWEET + id); - notifySimpleNotifycation(id, getString(R.string.tweet_publishing), - getString(R.string.tweet_public), - getString(R.string.tweet_publishing), true, false); - OSChinaApi.pubTweet(tweet, new PublicTweetResponseHandler( - getMainLooper(), tweet, KEY_TWEET)); - } - - private void pubSoftWareTweet(final Tweet tweet, int softid) { - tweet.setId((int) System.currentTimeMillis()); - int id = tweet.getId(); - addPenddingTask(KEY_SOFTWARE_TWEET + id); - notifySimpleNotifycation(id, getString(R.string.tweet_publishing), - getString(R.string.tweet_public), - getString(R.string.tweet_publishing), true, false); - OSChinaApi.pubSoftWareTweet(tweet, softid, - new PublicTweetResponseHandler(getMainLooper(), tweet, - KEY_SOFTWARE_TWEET)); - } - - private void notifySimpleNotifycation(int id, String ticker, String title, - String content, boolean ongoing, boolean autoCancel) { - NotificationCompat.Builder builder = new NotificationCompat.Builder( - this) - .setTicker(ticker) - .setContentTitle(title) - .setContentText(content) - .setAutoCancel(true) - .setOngoing(false) - .setOnlyAlertOnce(true) - .setContentIntent( - PendingIntent.getActivity(this, 0, new Intent(), 0)) - .setSmallIcon(R.drawable.ic_notification); - - // if (AppContext.isNotificationSoundEnable()) { - // builder.setDefaults(Notification.DEFAULT_SOUND); - // } - - Notification notification = builder.build(); - - NotificationManagerCompat.from(this).notify(id, notification); - } - - private void cancellNotification(int id) { - NotificationManagerCompat.from(this).cancel(id); - } -} diff --git a/app/src/main/java/net/oschina/app/service/ServerTaskUtils.java b/app/src/main/java/net/oschina/app/service/ServerTaskUtils.java deleted file mode 100644 index 4ae0f3bbc..000000000 --- a/app/src/main/java/net/oschina/app/service/ServerTaskUtils.java +++ /dev/null @@ -1,31 +0,0 @@ -package net.oschina.app.service; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; - -import net.oschina.app.AppContext; -import net.oschina.app.bean.Tweet; - -public class ServerTaskUtils { - - public static void pubTweet(Context context, Tweet tweet) { - Intent intent = new Intent(ServerTaskService.ACTION_PUB_TWEET); - Bundle bundle = new Bundle(); - bundle.putParcelable(ServerTaskService.BUNDLE_PUB_TWEET_TASK, tweet); - intent.putExtras(bundle); - intent.setPackage(AppContext.getInstance().getPackageName()); - context.startService(intent); - } - - public static void pubSoftWareTweet(Context context, Tweet tweet, int softid) { - Intent intent = new Intent(ServerTaskService.ACTION_PUB_SOFTWARE_TWEET); - Bundle bundle = new Bundle(); - bundle.putParcelable(ServerTaskService.BUNDLE_PUB_SOFTWARE_TWEET_TASK, - tweet); - bundle.putInt(ServerTaskService.KEY_SOFTID, softid); - intent.putExtras(bundle); - intent.setPackage(AppContext.getInstance().getPackageName()); - context.startService(intent); - } -} diff --git a/app/src/main/java/net/oschina/app/team/adapter/NotebookAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/NotebookAdapter.java deleted file mode 100644 index 95ca76af4..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/NotebookAdapter.java +++ /dev/null @@ -1,164 +0,0 @@ -package net.oschina.app.team.adapter; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import net.oschina.app.R; -import net.oschina.app.bean.NotebookData; -import net.oschina.app.team.fragment.NoteEditFragment; -import net.oschina.app.widget.KJDragGridView.DragGridBaseAdapter; - -import org.kymjs.kjframe.utils.DensityUtils; - -import android.app.Activity; -import android.text.Html; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.ImageView; -import android.widget.RelativeLayout; -import android.widget.RelativeLayout.LayoutParams; -import android.widget.TextView; - -/** - * 便签列表适配器 - * - * @author kymjs (https://github.com/kymjs) - * - */ -public class NotebookAdapter extends BaseAdapter implements DragGridBaseAdapter { - private List datas; - private final Activity aty; - private int currentHidePosition = -1; - private final int width; - private final int height; - private boolean dataChange = false; - - public NotebookAdapter(Activity aty, List datas) { - super(); - Collections.sort(datas); - this.datas = datas; - this.aty = aty; - width = DensityUtils.getScreenW(aty) / 2; - height = (int) aty.getResources().getDimension(R.dimen.space_35); - } - - public void refurbishData(List datas) { - if (datas == null) { - datas = new ArrayList(1); - } - Collections.sort(datas); - this.datas = datas; - notifyDataSetChanged(); - } - - @Override - public int getCount() { - return datas.size(); - } - - @Override - public Object getItem(int position) { - return datas.get(position); - } - - @Override - public long getItemId(int position) { - return 0; - } - - public List getDatas() { - return datas; - } - - /** - * 数据是否发生了改变 - * - * @return - */ - public boolean getDataChange() { - return dataChange; - } - - static class ViewHolder { - TextView date; - ImageView state; - ImageView thumbtack; - View titleBar; - TextView content; - } - - @Override - public View getView(int position, View v, ViewGroup parent) { - datas.get(position).setIid(position); - NotebookData data = datas.get(position); - - ViewHolder holder = null; - if (v == null) { - holder = new ViewHolder(); - v = View.inflate(aty, R.layout.item_notebook, null); - holder.titleBar = v.findViewById(R.id.item_note_titlebar); - holder.date = (TextView) v.findViewById(R.id.item_note_tv_date); - holder.state = (ImageView) v.findViewById(R.id.item_note_img_state); - holder.thumbtack = (ImageView) v - .findViewById(R.id.item_note_img_thumbtack); - holder.content = (TextView) v.findViewById(R.id.item_note_content); - v.setTag(holder); - } else { - holder = (ViewHolder) v.getTag(); - } - - RelativeLayout.LayoutParams params = (LayoutParams) holder.content - .getLayoutParams(); - params.width = width; - params.height = (params.width - height); - holder.content.setLayoutParams(params); - - holder.titleBar - .setBackgroundColor(NoteEditFragment.sTitleBackGrounds[data - .getColor()]); - holder.date.setText(data.getDate()); - if (data.getId() > 0) { - holder.state.setVisibility(View.GONE); - } else { - holder.state.setVisibility(View.VISIBLE); - } - holder.thumbtack.setImageResource(NoteEditFragment.sThumbtackImgs[data - .getColor()]); - holder.content.setText(Html.fromHtml(data.getContent())); - holder.content.setBackgroundColor(NoteEditFragment.sBackGrounds[data - .getColor()]); - if (position == currentHidePosition) { - v.setVisibility(View.GONE); - } else { - v.setVisibility(View.VISIBLE); - } - return v; - } - - @Override - public void reorderItems(int oldPosition, int newPosition) { - dataChange = true; - if (oldPosition >= datas.size() || oldPosition < 0) { - return; - } - NotebookData temp = datas.get(oldPosition); - if (oldPosition < newPosition) { - for (int i = oldPosition; i < newPosition; i++) { - Collections.swap(datas, i, i + 1); - } - } else if (oldPosition > newPosition) { - for (int i = oldPosition; i > newPosition; i--) { - Collections.swap(datas, i, i - 1); - } - } - datas.set(newPosition, temp); - } - - @Override - public void setHideItem(int hidePosition) { - this.currentHidePosition = hidePosition; - notifyDataSetChanged(); - } -} diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamActiveAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/TeamActiveAdapter.java deleted file mode 100644 index 70a89a0c3..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamActiveAdapter.java +++ /dev/null @@ -1,151 +0,0 @@ -package net.oschina.app.team.adapter; - -import android.content.Context; -import android.graphics.Bitmap; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.team.bean.TeamActive; -import net.oschina.app.ui.ImagePreviewActivity; -import net.oschina.app.util.BitmapHelper; -import net.oschina.app.util.StringUtils; -import net.oschina.app.widget.AvatarView; -import net.oschina.app.widget.TweetTextView; - -import org.kymjs.kjframe.Core; -import org.kymjs.kjframe.bitmap.BitmapCallBack; - -/** - * Team动态界面ListView适配器 (kymjs123@gmail.com) - * - * @author kymjs (https://github.com/kymjs) - */ -public class TeamActiveAdapter extends ListBaseAdapter { - private final Context context; - - public TeamActiveAdapter(Context cxt) { - this.context = cxt; - } - - static class ViewHolder { - AvatarView img_head; - TextView tv_name; - TweetTextView tv_content; - TextView tv_client; - TextView tv_date; - TextView tv_commit; - TextView tv_title; - ImageView iv_pic; - } - - @Override - protected View getRealView(int position, View v, ViewGroup parent) { - super.getRealView(position, v, parent); - ViewHolder holder = null; - TeamActive data = mDatas.get(position); - if (v == null || v.getTag() == null) { - v = View.inflate(context, R.layout.list_cell_team_active, null); - holder = new ViewHolder(); - holder.img_head = (AvatarView) v - .findViewById(R.id.event_listitem_userface); - holder.tv_name = (TextView) v - .findViewById(R.id.event_listitem_username); - holder.tv_title = (TextView) v.findViewById(R.id.title); - holder.tv_content = (TweetTextView) v - .findViewById(R.id.event_listitem_content); - holder.tv_client = (TextView) v - .findViewById(R.id.event_listitem_client); - holder.iv_pic = (ImageView) v.findViewById(R.id.iv_pic); - holder.tv_date = (TextView) v - .findViewById(R.id.event_listitem_date); - holder.tv_commit = (TextView) v.findViewById(R.id.tv_comment_count); - v.setTag(holder); - } else { - holder = (ViewHolder) v.getTag(); - } - holder.img_head.setAvatarUrl(data.getAuthor().getPortrait()); - holder.img_head.setUserInfo(data.getAuthor().getId(), data.getAuthor() - .getName()); - holder.tv_name.setText(data.getAuthor().getName()); - setContent(holder.tv_content, stripTags(data.getBody().getTitle())); - - String date = StringUtils.friendly_time2(data.getCreateTime()); - String preDate = ""; - if (position > 0) { - preDate = StringUtils.friendly_time2(mDatas.get(position - 1) - .getCreateTime()); - } - if (preDate.equals(date)) { - holder.tv_title.setVisibility(View.GONE); - } else { - holder.tv_title.setText(date); - holder.tv_title.setVisibility(View.VISIBLE); - } - - holder.tv_content.setMaxLines(3); - holder.tv_date.setText(StringUtils.friendly_time(data.getCreateTime())); - holder.tv_commit.setText(data.getReply()); - - String imgPath = data.getBody().getImage(); - if (!StringUtils.isEmpty(imgPath)) { - holder.iv_pic.setVisibility(View.VISIBLE); - setTweetImage(holder.iv_pic, imgPath); - } else { - holder.iv_pic.setVisibility(View.GONE); - } - return v; - } - - /** - * 移除字符串中的Html标签 - * - * @param pHTMLString - * @return - * @author kymjs (https://github.com/kymjs) - */ - public static String stripTags(final String pHTMLString) { - // String str = pHTMLString.replaceAll("\\<.*?>", ""); - String str = pHTMLString.replaceAll("\\t", ""); - str = str.replaceAll("<\\s*img\\s+([^>]*)\\s*>", "").trim(); - return str; - } - - @Override - public TeamActive getItem(int arg0) { - super.getItem(arg0); - return mDatas.get(arg0); - } - - /** - * 动态设置图片显示样式 - * - * @author kymjs - */ - private void setTweetImage(final ImageView pic, final String url) { - pic.setVisibility(View.VISIBLE); - - Core.getKJBitmap().display(pic, url, R.drawable.pic_bg, 0, 0, new BitmapCallBack() { - @Override - public void onSuccess(Bitmap bitmap) { - super.onSuccess(bitmap); - if (bitmap != null) { - bitmap = BitmapHelper.scaleWithXY(bitmap, - 360 / bitmap.getHeight()); - pic.setImageBitmap(bitmap); - } - } - }); - - pic.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - ImagePreviewActivity.showImagePrivew(context, 0, - new String[]{url}); - } - }); - } -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamDiaryDetailAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/TeamDiaryDetailAdapter.java deleted file mode 100644 index 61c0c5af6..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamDiaryDetailAdapter.java +++ /dev/null @@ -1,149 +0,0 @@ -package net.oschina.app.team.adapter; - -import android.content.Context; -import android.text.Html; -import android.text.Spanned; -import android.view.View; -import android.view.ViewGroup; -import android.webkit.WebView; -import android.widget.BaseAdapter; -import android.widget.ImageView; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.team.bean.TeamDiaryDetail; -import net.oschina.app.team.bean.TeamDiaryDetail.DayData; - -import java.util.ArrayList; -import java.util.List; - -public class TeamDiaryDetailAdapter extends BaseAdapter { - - private final TeamDiaryDetail data; - private final Context cxt; - private final List datas; - private final int[] weekIndex = new int[7]; - - public TeamDiaryDetailAdapter(Context cxt, TeamDiaryDetail datas) { - this.cxt = cxt; - this.data = datas; - this.datas = new ArrayList(20); - } - - @Override - public int getCount() { - if (data == null) { - return 0; - } - int count = 0; - weekIndex[0] = count; - count += isNull(data.getSun()); - weekIndex[1] = count; - count += isNull(data.getSat()); - weekIndex[2] = count; - count += isNull(data.getFri()); - weekIndex[3] = count; - count += isNull(data.getThu()); - weekIndex[4] = count; - count += isNull(data.getWed()); - weekIndex[5] = count; - count += isNull(data.getTue()); - weekIndex[6] = count; - count += isNull(data.getMon()); - return count; - } - - private String getWeek(int position, View hide) { - String week = ""; - hide.setVisibility(View.GONE); - if (position == weekIndex[0]) { - hide.setVisibility(View.VISIBLE); - week = "星期日"; - } - if (position == weekIndex[1]) { - hide.setVisibility(View.VISIBLE); - week = "星期六"; - } - if (position == weekIndex[2]) { - hide.setVisibility(View.VISIBLE); - week = "星期五"; - } - if (position == weekIndex[3]) { - hide.setVisibility(View.VISIBLE); - week = "星期四"; - } - if (position == weekIndex[4]) { - hide.setVisibility(View.VISIBLE); - week = "星期三"; - } - if (position == weekIndex[5]) { - hide.setVisibility(View.VISIBLE); - week = "星期二"; - } - if (position == weekIndex[6]) { - hide.setVisibility(View.VISIBLE); - week = "星期一"; - } - return week; - } - - private int isNull(DayData data) { - if (data == null) { - return 0; - } - datas.addAll(data.getList()); - return data.getList().size(); - } - - @Override - public Object getItem(int position) { - return null; - } - - @Override - public long getItemId(int position) { - return 0; - } - - static class ViewHolder { - TextView week; - TextView content; - ImageView imageWeek; - WebView webView; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder holder = null; - if (convertView == null) { - holder = new ViewHolder(); - convertView = View.inflate(cxt, R.layout.list_cell_diary_detail, - null); - holder.week = (TextView) convertView - .findViewById(R.id.item_diary_detail_week); - holder.content = (TextView) convertView - .findViewById(R.id.item_diary_detail_content); - holder.imageWeek = (ImageView) convertView - .findViewById(R.id.item_diary_detail_img); - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - holder.week.setText(getWeek(position, holder.imageWeek)); - holder.content.setText(stripTags(datas.get(position).toString())); - return convertView; - } - - /** - * 移除字符串中的Html标签 - * - * @author kymjs (https://github.com/kymjs) - * @param pHTMLString - * @return - */ - public static Spanned stripTags(final String pHTMLString) { - // String str = pHTMLString.replaceAll("\\<.*?>", ""); - String str = pHTMLString.replaceAll("", "
    "); - return Html.fromHtml(str); - } -} diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamDiaryListAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/TeamDiaryListAdapter.java deleted file mode 100644 index 774f52f69..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamDiaryListAdapter.java +++ /dev/null @@ -1,91 +0,0 @@ -package net.oschina.app.team.adapter; - -import android.content.Context; -import android.text.Html; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.team.bean.TeamDiary; -import net.oschina.app.util.StringUtils; -import net.oschina.app.widget.AvatarView; - -import java.util.ArrayList; -import java.util.List; - -/** - * 周报的ListView适配器 - * - * @author kymjs (http://www.kymjs.com) - * - */ -public class TeamDiaryListAdapter extends BaseAdapter { - private final Context cxt; - private List list; - - public TeamDiaryListAdapter(Context cxt, List list) { - this.cxt = cxt; - if (list == null) { - list = new ArrayList(1); - } - this.list = list; - } - - public void refresh(List list) { - if (list == null) { - list = new ArrayList(1); - } - this.list = list; - notifyDataSetChanged(); - } - - @Override - public int getCount() { - return list.size(); - } - - @Override - public Object getItem(int position) { - return list.get(position); - } - - @Override - public long getItemId(int position) { - return 0; - } - - @Override - public View getView(int position, View v, ViewGroup parent) { - TeamDiary data = list.get(position); - ViewHolder holder = null; - if (v == null) { - v = View.inflate(cxt, R.layout.list_cell_team_diary, null); - holder = new ViewHolder(); - holder.iv_face = (AvatarView) v.findViewById(R.id.iv_face); - holder.tv_author = (TextView) v.findViewById(R.id.tv_author); - holder.tv_title = (TextView) v.findViewById(R.id.tv_title); - holder.tv_date = (TextView) v.findViewById(R.id.tv_date); - holder.tv_count = (TextView) v.findViewById(R.id.tv_count); - v.setTag(holder); - } else { - holder = (ViewHolder) v.getTag(); - } - holder.iv_face.setAvatarUrl(data.getAuthor().getPortrait()); - holder.tv_author.setText(data.getAuthor().getName()); - holder.tv_date.setText(StringUtils.friendly_time(data.getCreateTime())); - holder.tv_count.setText(data.getReply() + ""); - holder.tv_title.setText(Html.fromHtml(data.getTitle()).toString() - .trim()); - return v; - } - - static class ViewHolder { - AvatarView iv_face; - TextView tv_author; - TextView tv_title; - TextView tv_date; - TextView tv_count; - } -} diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamDiaryPagerAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/TeamDiaryPagerAdapter.java deleted file mode 100644 index 453769086..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamDiaryPagerAdapter.java +++ /dev/null @@ -1,48 +0,0 @@ -package net.oschina.app.team.adapter; - -import net.oschina.app.util.StringUtils; -import net.oschina.app.widget.DiaryPageContentView; -import android.content.Context; -import android.support.v4.view.PagerAdapter; -import android.view.View; -import android.view.ViewGroup; - -/** - * 周报ViewPager适配器 - * - * @author kymjs (http://www.kymjs.com) - */ -public class TeamDiaryPagerAdapter extends PagerAdapter { - private final Context cxt; - private final int currentYear; - private final int teamId; - - public TeamDiaryPagerAdapter(Context cxt, int currentYear, int teamId) { - this.currentYear = currentYear; - this.cxt = cxt; - this.teamId = teamId; - } - - @Override - public int getCount() { - return currentYear == 2015 ? StringUtils.getWeekOfYear() : 52; - } - - @Override - public boolean isViewFromObject(View arg0, Object arg1) { - return arg0 == arg1; - } - - @Override - public void destroyItem(ViewGroup container, int position, Object object) { - container.removeView((View) object); - } - - @Override - public Object instantiateItem(ViewGroup container, int position) { - View pagerView = new DiaryPageContentView(cxt, teamId, currentYear, - position + 1).getView(); - (container).addView(pagerView); - return pagerView; - } -} diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamDiscussAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/TeamDiscussAdapter.java deleted file mode 100755 index 31fff0a4a..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamDiscussAdapter.java +++ /dev/null @@ -1,78 +0,0 @@ -package net.oschina.app.team.adapter; - -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.team.bean.TeamDiscuss; -import net.oschina.app.util.HTMLUtil; -import net.oschina.app.util.StringUtils; -import net.oschina.app.widget.AvatarView; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * team 讨论区帖子 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @created 2014年10月9日 下午6:22:54 - */ -public class TeamDiscussAdapter extends ListBaseAdapter { - - static class ViewHolder { - - @InjectView(R.id.tv_title) - TextView title; - @InjectView(R.id.tv_description) - TextView description; - @InjectView(R.id.tv_author) - TextView author; - @InjectView(R.id.tv_date) - TextView time; - @InjectView(R.id.tv_count) - TextView comment_count; - @InjectView(R.id.tv_vote_up) - TextView vote_up; - - @InjectView(R.id.iv_face) - public AvatarView face; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_team_discuss, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - TeamDiscuss item = mDatas.get(position); - - vh.face.setUserInfo(item.getAuthor().getId(), item.getAuthor() - .getName()); - vh.face.setAvatarUrl(item.getAuthor().getPortrait()); - vh.title.setText(item.getTitle()); - String body = item.getBody().trim(); - vh.description.setVisibility(View.GONE); - if (null != body || !StringUtils.isEmpty(body)) { - vh.description.setVisibility(View.VISIBLE); - vh.description.setText(HTMLUtil.replaceTag(item.getBody()).trim()); - } - vh.author.setText(item.getAuthor().getName()); - vh.time.setText(StringUtils.friendly_time(item.getCreateTime())); - vh.vote_up.setText(item.getVoteUp() + ""); - vh.comment_count.setText(item.getAnswerCount() + ""); - return convertView; - } -} diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamIssueAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/TeamIssueAdapter.java deleted file mode 100644 index 265f6a650..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamIssueAdapter.java +++ /dev/null @@ -1,199 +0,0 @@ -package net.oschina.app.team.adapter; - -import android.graphics.Paint; -import android.text.TextUtils; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.team.bean.TeamIssue; -import net.oschina.app.util.StringUtils; -import net.oschina.app.util.TypefaceUtils; -import net.oschina.app.util.ViewUtils; - -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 任务列表适配器 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2015年1月14日 下午5:28:51 - * - */ -public class TeamIssueAdapter extends ListBaseAdapter { - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - ViewHolder vh = null; - int type = getItemViewType(position); - if (convertView == null || convertView.getTag() == null) { - - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_team_issue, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - TeamIssue item = mDatas.get(position); - - vh.title.setText(item.getTitle()); - - String date = StringUtils.friendly_time2(item.getCreateTime()); - String preDate = ""; - if (position > 0) { - preDate = StringUtils.friendly_time2(mDatas.get(position - 1) - .getCreateTime()); - } - if (preDate.equals(date)) { - vh.title_line.setVisibility(View.GONE); - } else { - vh.title_line.setText(date); - vh.title_line.setVisibility(View.VISIBLE); - } - - setIssueState(vh, item); - - setIssueSource(vh, item); - - vh.author.setText(item.getAuthor().getName()); - if (item.getToUser() == null - || TextUtils.isEmpty(item.getToUser().getName())) { - vh.to.setText("未指派"); - vh.touser.setVisibility(View.GONE); - } else { - vh.to.setText("指派给"); - vh.touser.setVisibility(View.VISIBLE); - vh.touser.setText(item.getToUser().getName()); - } - - vh.time.setText(StringUtils.friendly_time(item.getCreateTime())); - vh.comment.setText(item.getReplyCount() + ""); - - if (item.getProject() != null && item.getProject().getGit() != null) { - vh.project.setVisibility(View.VISIBLE); - String gitState = item.getGitpush() == TeamIssue.TEAM_ISSUE_GITPUSHED ? "" - : " -未同步"; - setText(vh.project, item.getProject().getGit().getName() + gitState); - } else { - vh.project.setVisibility(View.GONE); - } - - String deadlineTime = item.getDeadlineTime(); - if (!StringUtils.isEmpty(deadlineTime)) { - vh.accept_time.setVisibility(View.VISIBLE); - setText(vh.accept_time, getDeadlineTime(item), true); - } else { - vh.accept_time.setVisibility(View.GONE); - } - - if (item.getAttachments().getTotalCount() != 0) { - vh.attachments.setVisibility(View.VISIBLE); - vh.attachments.setText("附件" + item.getAttachments().getTotalCount() - + ""); - } else { - vh.attachments.setVisibility(View.GONE); - } - - if (item.getChildIssues() != null - && item.getChildIssues().getTotalCount() != 0) { - vh.childissues.setVisibility(View.VISIBLE); - setText(vh.childissues, "子任务(" - + item.getChildIssues().getClosedCount() + "/" - + item.getChildIssues().getTotalCount() + ")"); - } else { - vh.childissues.setVisibility(View.GONE); - } - - if (item.getRelations().getTotalCount() != 0) { - vh.relations.setVisibility(View.VISIBLE); - vh.relations.setText("关联" + item.getRelations().getTotalCount() - + ""); - } else { - vh.relations.setVisibility(View.GONE); - } - - return convertView; - } - - private void setIssueState(ViewHolder vh, TeamIssue teamIssue) { - String state = teamIssue.getState(); - if (TextUtils.isEmpty(state)) - return; - TypefaceUtils.setTypeface(vh.state, teamIssue.getIssueStateFaTextId()); - - if (teamIssue.getState().equals("closed") - || teamIssue.getState().equals("accepted")) { - ViewUtils.setTextViewLineFlag(vh.title, Paint.STRIKE_THRU_TEXT_FLAG - | Paint.ANTI_ALIAS_FLAG); - } else { - ViewUtils.setTextViewLineFlag(vh.title, 0 | Paint.ANTI_ALIAS_FLAG); - } - } - - private void setIssueSource(ViewHolder vh, TeamIssue teamIssue) { - String source = teamIssue.getSource(); - if (TextUtils.isEmpty(source)) - return; - TextView tv = vh.issueSource; - if (source.equalsIgnoreCase(TeamIssue.TEAM_ISSUE_SOURCE_GITOSC)) { - // 来自gitosc - TypefaceUtils.setTypeface(tv, R.string.fa_gitosc); - } else if (source.equalsIgnoreCase(TeamIssue.TEAM_ISSUE_SOURCE_GITHUB)) { - // 来自github - TypefaceUtils.setTypeface(tv, R.string.fa_github); - } else { - // 来自teamosc - TypefaceUtils.setTypeface(tv, R.string.fa_team); - } - } - - private String getDeadlineTime(TeamIssue teamIssue) { - SimpleDateFormat dataFormat = new SimpleDateFormat("yyyy-MM-dd"); - Date date = StringUtils.toDate(teamIssue.getUpdateTime(), dataFormat); - return DateFormat.getDateInstance(DateFormat.SHORT).format(date); - } - - static class ViewHolder { - @InjectView(R.id.iv_issue_state) - TextView state; - @InjectView(R.id.tv_title) - TextView title; - @InjectView(R.id.iv_issue_source) - TextView issueSource; - @InjectView(R.id.tv_project) - TextView project; - @InjectView(R.id.tv_attachments) - TextView attachments;// 附件 - @InjectView(R.id.tv_childissues) - TextView childissues;// 子任务 - @InjectView(R.id.tv_relations) - TextView relations;// 关联任务 - @InjectView(R.id.tv_accept_time) - TextView accept_time; - @InjectView(R.id.tv_author) - TextView author; - @InjectView(R.id.tv_to) - TextView to; - @InjectView(R.id.tv_touser) - TextView touser; - @InjectView(R.id.tv_time) - TextView time; - @InjectView(R.id.tv_comment_count) - TextView comment; - @InjectView(R.id.title) - TextView title_line; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamIssueCatalogAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/TeamIssueCatalogAdapter.java deleted file mode 100644 index d54eef878..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamIssueCatalogAdapter.java +++ /dev/null @@ -1,63 +0,0 @@ -package net.oschina.app.team.adapter; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.team.bean.TeamIssueCatalog; -import net.oschina.app.util.StringUtils; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * TeamIssueCatalogAdapter.java - * - * @author 火蚁(http://my.oschina.net/u/253900) - * - * @data 2015-3-1 下午3:37:03 - */ -public class TeamIssueCatalogAdapter extends ListBaseAdapter { - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_team_issue_catalog, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - TeamIssueCatalog item = mDatas.get(position); - - vh.title.setText(item.getTitle()); - vh.state.setText(item.getOpenedIssueCount() + "/" - + item.getAllIssueCount()); - - String description = item.getDescription(); - if (description != null && !StringUtils.isEmpty(description)) { - vh.description.setText(description); - } else { - vh.description.setText("暂无描述"); - } - - return convertView; - } - - static class ViewHolder { - - @InjectView(R.id.tv_team_issue_catalog_title) - TextView title; - @InjectView(R.id.tv_team_issue_catalog_desc) - TextView description; - @InjectView(R.id.tv_team_issue_catalog_state) - TextView state; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamMemberAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/TeamMemberAdapter.java deleted file mode 100644 index c72934178..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamMemberAdapter.java +++ /dev/null @@ -1,106 +0,0 @@ -package net.oschina.app.team.adapter; - -import java.util.ArrayList; -import java.util.List; - -import net.oschina.app.R; -import net.oschina.app.team.bean.Team; -import net.oschina.app.team.bean.TeamMember; -import net.oschina.app.util.UIHelper; -import net.oschina.app.widget.AvatarView; -import android.content.Context; -import android.graphics.drawable.ColorDrawable; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.ImageView; -import android.widget.TextView; - -/** - * 团队成员GridView适配器 - * - * @author kymjs (kymjs123@gmail.com) - * - */ -public class TeamMemberAdapter extends BaseAdapter { - private final Context cxt; - private List datas; - private final Team team; - public static final String TEAM_MEMBER_KEY = "TeamMemberAdapter_teammemberkey"; - public static final String TEAM_ID_KEY = "TeamMemberAdapter_teaminfokey"; - - public TeamMemberAdapter(Context context, List datas, Team team) { - this.cxt = context; - this.team = team; - if (datas == null) { - datas = new ArrayList(1); - } - this.datas = datas; - } - - public void refresh(List datas) { - if (datas == null) { - datas = new ArrayList(1); - } - this.datas = datas; - notifyDataSetChanged(); - } - - @Override - public int getCount() { - return datas.size(); - } - - @Override - public Object getItem(int position) { - return null; - } - - @Override - public long getItemId(int position) { - return 0; - } - - static class ViewHolder { - ImageView img_tip; - AvatarView img_head; - TextView tv_name; - } - - @Override - public View getView(final int position, View v, ViewGroup parent) { - ViewHolder holder = null; - TeamMember data = datas.get(position); - if (v == null) { - v = View.inflate(cxt, R.layout.item_team_member, null); - holder = new ViewHolder(); - holder.img_head = (AvatarView) v - .findViewById(R.id.item_team_member_head); - holder.img_tip = (ImageView) v - .findViewById(R.id.item_team_membar_tip); - holder.tv_name = (TextView) v - .findViewById(R.id.item_team_membar_name); - v.setTag(holder); - } else { - holder = (ViewHolder) v.getTag(); - } - holder.tv_name.setText(data.getName()); - holder.img_head.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - UIHelper.showTeamMemberInfo(cxt, team.getId(), - datas.get(position)); - } - }); - holder.img_head.setAvatarUrl(data.getPortrait()); - if (127 == data.getTeamRole()) { // 创建人,红色 - holder.img_tip.setImageDrawable(new ColorDrawable(0xffff0000)); - } else if (126 == data.getTeamRole()) { // 管理者,黄色 - holder.img_tip.setImageDrawable(new ColorDrawable(0xffffb414)); - } else { - holder.img_tip.setImageDrawable(null); - } - return v; - } -} diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamProjectListAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/TeamProjectListAdapter.java deleted file mode 100644 index 843a26085..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamProjectListAdapter.java +++ /dev/null @@ -1,101 +0,0 @@ -package net.oschina.app.team.adapter; - -import android.text.TextUtils; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.team.bean.TeamProject; -import net.oschina.app.util.TypefaceUtils; - -import java.util.ArrayList; -import java.util.List; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 团队项目适配器 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2015年1月19日 下午6:00:33 - * - */ - -public class TeamProjectListAdapter extends BaseAdapter { - - private final ArrayList datas = new ArrayList(); - - public void add(TeamProject project) { - this.datas.add(project); - notifyDataSetChanged(); - } - - public void add(List datas) { - this.datas.addAll(datas); - notifyDataSetChanged(); - } - - @Override - public int getCount() { - return datas.size(); - } - - @Override - public TeamProject getItem(int position) { - return datas.get(position); - } - - @Override - public long getItemId(int position) { - return 0; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder vh; - if (convertView == null || convertView.getTag() == null) { - convertView = View.inflate(parent.getContext(), - R.layout.list_cell_team_project, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - TeamProject item = datas.get(position); - - String source = item.getSource(); - TextView tvSource = vh.source; - if (TextUtils.isEmpty(source)) { - if (item.getGit().getId() == -1) { - TypefaceUtils.setTypeface(tvSource, R.string.fa_tasks); - } else { - TypefaceUtils.setTypeface(tvSource, R.string.fa_inbox); - } - } else if (source.equalsIgnoreCase(TeamProject.GITOSC)) { - TypefaceUtils.setTypeface(tvSource, R.string.fa_gitosc); - } else if (source.equalsIgnoreCase(TeamProject.GITHUB)) { - TypefaceUtils.setTypeface(tvSource, R.string.fa_github); - } else { - TypefaceUtils.setTypeface(tvSource, R.string.fa_list_alt); - } - vh.name.setText(item.getGit().getName()); - - return convertView; - } - - public static class ViewHolder { - @InjectView(R.id.iv_source) - TextView source; - @InjectView(R.id.tv_project_name) - TextView name; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } - -} \ No newline at end of file diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamProjectListAdapterNew.java b/app/src/main/java/net/oschina/app/team/adapter/TeamProjectListAdapterNew.java deleted file mode 100644 index 2654a37f6..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamProjectListAdapterNew.java +++ /dev/null @@ -1,75 +0,0 @@ -package net.oschina.app.team.adapter; - -import android.text.TextUtils; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.team.bean.TeamProject; -import net.oschina.app.util.TypefaceUtils; - -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 团队项目适配器 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2015年1月19日 下午6:00:33 - */ - -public class TeamProjectListAdapterNew extends ListBaseAdapter { - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - // TODO Auto-generated method stub - ViewHolder vh; - if (convertView == null || convertView.getTag() == null) { - convertView = View.inflate(parent.getContext(), - R.layout.list_cell_team_project, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - TeamProject item = mDatas.get(position); - - String source = item.getSource(); - TextView tvSource = vh.source; - if (TextUtils.isEmpty(source)) { - if (item.getGit().getId() == -1) { - TypefaceUtils.setTypeface(tvSource, R.string.fa_tasks); - } else { - TypefaceUtils.setTypeface(tvSource, R.string.fa_inbox); - } - } else if (source.equalsIgnoreCase(TeamProject.GITOSC)) { - TypefaceUtils.setTypeface(tvSource, R.string.fa_gitosc); - } else if (source.equalsIgnoreCase(TeamProject.GITHUB)) { - TypefaceUtils.setTypeface(tvSource, R.string.fa_github); - } else { - TypefaceUtils.setTypeface(tvSource, R.string.fa_list_alt); - } - - vh.name.setText(item.getGit().getOwnerName() + " / " + item.getGit().getName()); - vh.issue.setText(item.getIssue().getOpened() + "/" + item.getIssue().getAll()); - - return convertView; - } - - public static class ViewHolder { - @InjectView(R.id.iv_source) - TextView source; - @InjectView(R.id.tv_project_name) - TextView name; - @InjectView(R.id.tv_project_issue) - TextView issue; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } - -} diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamProjectMemberAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/TeamProjectMemberAdapter.java deleted file mode 100644 index 2334c5908..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamProjectMemberAdapter.java +++ /dev/null @@ -1,55 +0,0 @@ -package net.oschina.app.team.adapter; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.team.bean.TeamMember; -import net.oschina.app.widget.AvatarView; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 团队项目适配器 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2015年1月19日 下午6:00:33 - * - */ - -public class TeamProjectMemberAdapter extends ListBaseAdapter { - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - // TODO Auto-generated method stub - ViewHolder vh; - if (convertView == null || convertView.getTag() == null) { - convertView = View.inflate(parent.getContext(), - R.layout.list_cell_team_project_member, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - TeamMember item = mDatas.get(position); - - vh.avatar.setAvatarUrl(item.getPortrait()); - vh.name.setText(item.getName()); - - return convertView; - } - - public static class ViewHolder { - @InjectView(R.id.iv_avatar) - AvatarView avatar; - @InjectView(R.id.tv_name) - TextView name; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } - -} diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamReplyAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/TeamReplyAdapter.java deleted file mode 100644 index 93da94597..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamReplyAdapter.java +++ /dev/null @@ -1,119 +0,0 @@ -package net.oschina.app.team.adapter; - -import java.util.List; - -import net.oschina.app.R; -import net.oschina.app.base.ListBaseAdapter; -import net.oschina.app.team.bean.TeamReply; -import net.oschina.app.util.HTMLUtil; -import net.oschina.app.util.StringUtils; -import net.oschina.app.widget.AvatarView; -import net.oschina.app.widget.TweetTextView; -import android.content.Context; -import android.view.View; -import android.view.ViewGroup; -import android.widget.LinearLayout; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -/** - * 评论适配器 TeamReply.java - * - * @author 火蚁(http://my.oschina.net/u/253900) - * - * @data 2015-1-30 下午4:05:00 - */ -public class TeamReplyAdapter extends ListBaseAdapter { - - @Override - protected View getRealView(int position, View convertView, ViewGroup parent) { - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - convertView = getLayoutInflater(parent.getContext()).inflate( - R.layout.list_cell_team_reply, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - - TeamReply item = mDatas.get(position); - vh.name.setText(item.getAuthor().getName()); - vh.avatar.setAvatarUrl(item.getAuthor().getPortrait()); - setContent(vh.content, HTMLUtil.delHTMLTag(item.getContent())); - vh.time.setText(StringUtils.friendly_time(item.getCreateTime())); - - if (StringUtils.isEmpty(item.getAppName())) { - vh.from.setVisibility(View.GONE); - } else { - vh.from.setVisibility(View.VISIBLE); - vh.from.setText(item.getAppName()); - } - setReplies(parent.getContext(), item, vh); - return convertView; - } - - private void setReplies(Context context, TeamReply item, ViewHolder vh) { - List replies = item.getReplies(); - vh.relies.removeAllViews(); - if (replies == null || replies.size() <= 0) { - vh.relies.setVisibility(View.GONE); - } else { - vh.relies.setVisibility(View.VISIBLE); - - // add count layout - View countView = getLayoutInflater(context).inflate( - R.layout.list_cell_reply_count, null, false); - TextView count = (TextView) countView - .findViewById(R.id.tv_comment_reply_count); - count.setText(context.getResources().getString( - R.string.comment_reply_count, replies.size())); - vh.relies.addView(countView); - - for (TeamReply teamReply : replies) { - View replyItemView = getLayoutInflater( - context).inflate(R.layout.list_cell_team_reply_refers, - null, false); - replyItemView.setBackgroundResource(R.drawable.comment_background); - - AvatarView avatarView = (AvatarView) replyItemView.findViewById(R.id.iv_avatar); - avatarView.setAvatarUrl(teamReply.getAuthor().getPortrait()); - TextView name = (TextView) replyItemView.findViewById(R.id.tv_name); - name.setText(teamReply.getAuthor().getName()); - TweetTextView content = (TweetTextView) replyItemView.findViewById(R.id.tv_content); - setContent(content, HTMLUtil.delHTMLTag(teamReply.getContent())); - TextView time = (TextView) replyItemView.findViewById(R.id.tv_time); - time.setText(StringUtils.friendly_time(teamReply.getCreateTime())); - TextView from = (TextView) replyItemView.findViewById(R.id.tv_from); - if (StringUtils.isEmpty(teamReply.getAppName())) { - from.setVisibility(View.GONE); - } else { - from.setVisibility(View.VISIBLE); - from.setText(teamReply.getAppName()); - } - vh.relies.addView(replyItemView); - } - } - } - - static class ViewHolder { - - @InjectView(R.id.iv_avatar) - AvatarView avatar; - @InjectView(R.id.tv_name) - TextView name; - @InjectView(R.id.tv_time) - TextView time; - @InjectView(R.id.tv_from) - TextView from; - @InjectView(R.id.tv_content) - TweetTextView content; - @InjectView(R.id.ly_relies) - LinearLayout relies; - - public ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } -} diff --git a/app/src/main/java/net/oschina/app/team/adapter/TeamSelectMemberAdapter.java b/app/src/main/java/net/oschina/app/team/adapter/TeamSelectMemberAdapter.java deleted file mode 100644 index 8b330aa3e..000000000 --- a/app/src/main/java/net/oschina/app/team/adapter/TeamSelectMemberAdapter.java +++ /dev/null @@ -1,72 +0,0 @@ -package net.oschina.app.team.adapter; - -import java.util.List; - -import net.oschina.app.R; -import net.oschina.app.team.bean.TeamMember; -import net.oschina.app.widget.AvatarView; -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.TextView; -import butterknife.ButterKnife; -import butterknife.InjectView; - -public class TeamSelectMemberAdapter extends BaseAdapter { - - static class ViewHolder { - @InjectView(R.id.iv_avatar) - AvatarView aView; - @InjectView(R.id.tv_name) - TextView name; - - ViewHolder(View view) { - ButterKnife.inject(this, view); - } - } - - private List members; - - public TeamSelectMemberAdapter(List members) { - this.members = members; - } - - @Override - public int getCount() { - // TODO Auto-generated method stub - return members.size(); - } - - @Override - public Object getItem(int position) { - // TODO Auto-generated method stub - return members.get(position); - } - - @Override - public long getItemId(int position) { - // TODO Auto-generated method stub - return position; - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - // TODO Auto-generated method stub - ViewHolder vh = null; - if (convertView == null || convertView.getTag() == null) { - LayoutInflater inflater = (LayoutInflater) parent.getContext() - .getSystemService(Context.LAYOUT_INFLATER_SERVICE); - convertView = inflater.inflate(R.layout.list_cell_team_project_member, null); - vh = new ViewHolder(convertView); - convertView.setTag(vh); - } else { - vh = (ViewHolder) convertView.getTag(); - } - TeamMember item = members.get(position); - vh.aView.setAvatarUrl(item.getPortrait()); - vh.name.setText(item.getName()); - return convertView; - } -} diff --git a/app/src/main/java/net/oschina/app/team/bean/Author.java b/app/src/main/java/net/oschina/app/team/bean/Author.java deleted file mode 100644 index 455a683f2..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/Author.java +++ /dev/null @@ -1,42 +0,0 @@ -package net.oschina.app.team.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -import net.oschina.app.bean.Entity; - -/** - * 帖子、任务、讨论的创建者, - * 注:节点 - * - * @author fireant - */ -@SuppressWarnings("serial") -@XStreamAlias("author") -public class Author extends Entity { - - @XStreamAlias("name") - private String name; - - @XStreamAlias("portrait") - private String portrait; - - @XStreamAlias("") - private String oscName; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getPortrait() { - return portrait; - } - - public void setPortrait(String portrait) { - this.portrait = portrait; - } - -} diff --git a/app/src/main/java/net/oschina/app/team/bean/MyIssueState.java b/app/src/main/java/net/oschina/app/team/bean/MyIssueState.java deleted file mode 100644 index ae52bf8f9..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/MyIssueState.java +++ /dev/null @@ -1,97 +0,0 @@ -package net.oschina.app.team.bean; - -import net.oschina.app.bean.Entity; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 我的任务中要显示的状态 - * - * @author kymjs (https://github.com/kymjs) - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class MyIssueState extends Entity { - @XStreamAlias("opened") - private String opened; // 待办中 - @XStreamAlias("outdate") - private String outdate; // 已过期 - @XStreamAlias("closed") - private String closed; // 已完成 - @XStreamAlias("finished") - private String finished; // 已完成 + 已验收 - @XStreamAlias("underway") - private String underway; // 进行中 - @XStreamAlias("accepted") - private String accepted; // 已验收 - @XStreamAlias("all") - private String all; - - @XStreamAlias("member") - private TeamMember user; - - public String getFinished() { - return finished; - } - - public void setFinished(String finished) { - this.finished = finished; - } - - public String getUnderway() { - return underway; - } - - public void setUnderway(String underway) { - this.underway = underway; - } - - public String getAccepted() { - return accepted; - } - - public void setAccepted(String accepted) { - this.accepted = accepted; - } - - public String getOpened() { - return opened; - } - - public void setOpened(String opened) { - this.opened = opened; - } - - public String getOutdate() { - return outdate; - } - - public void setOutdate(String outdate) { - this.outdate = outdate; - } - - public String getClosed() { - return closed; - } - - public void setClosed(String closed) { - this.closed = closed; - } - - public String getAll() { - return all; - } - - public void setAll(String all) { - this.all = all; - } - - public TeamMember getUser() { - return user; - } - - public void setUser(TeamMember user) { - this.user = user; - } -} diff --git a/app/src/main/java/net/oschina/app/team/bean/Team.java b/app/src/main/java/net/oschina/app/team/bean/Team.java deleted file mode 100644 index ec6ae221e..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/Team.java +++ /dev/null @@ -1,130 +0,0 @@ -package net.oschina.app.team.bean; - -import net.oschina.app.bean.Entity; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 团队属性 - * - * @author kymjs - * - */ -@SuppressWarnings("serial") -@XStreamAlias("team") -public class Team extends Entity { - @XStreamAlias("type") - private String type; - @XStreamAlias("status") - private String status; - @XStreamAlias("name") - private String name; - @XStreamAlias("ident") - private String ident; - @XStreamAlias("createTime") - private String createTime; - @XStreamAlias("about") - private About about = new About(); - - public About getAbout() { - return about; - } - - public void setAbout(About about) { - this.about = about; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getIdent() { - return ident; - } - - public void setIdent(String ident) { - this.ident = ident; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - @XStreamAlias("about") - public class About extends Entity { - @XStreamAlias("createTime") - String sign; - @XStreamAlias("address") - String address; - @XStreamAlias("telephone") - String telephone; - @XStreamAlias("email") - String email; - @XStreamAlias("qq") - String qq; - - public String getSign() { - return sign; - } - - public void setSign(String sign) { - this.sign = sign; - } - - public String getAddress() { - return address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getTelephone() { - return telephone; - } - - public void setTelephone(String telephone) { - this.telephone = telephone; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getQq() { - return qq; - } - - public void setQq(String qq) { - this.qq = qq; - } - } -} diff --git a/app/src/main/java/net/oschina/app/team/bean/TeamActive.java b/app/src/main/java/net/oschina/app/team/bean/TeamActive.java deleted file mode 100644 index e1786d84c..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/TeamActive.java +++ /dev/null @@ -1,167 +0,0 @@ -package net.oschina.app.team.bean; - -import net.oschina.app.bean.Entity; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * Team模块的动态JavaBean - * - * @author kymjs - * - */ -@SuppressWarnings("serial") -@XStreamAlias("active") -public class TeamActive extends Entity { - - @XStreamAlias("id") - private int id; - @XStreamAlias("body") - private Body body; - @XStreamAlias("reply") - private String reply; - @XStreamAlias("createTime") - private String createTime; - @XStreamAlias("author") - private Author author; - @XStreamAlias("type") - private int type; - - public Body getBody() { - return body; - } - - public int getType() { - return type; - } - - public void setType(int type) { - this.type = type; - } - - @Override - public int getId() { - return id; - } - - @Override - public void setId(int id) { - this.id = id; - } - - public void setBody(Body body) { - this.body = body; - } - - public String getReply() { - return reply; - } - - public void setReply(String reply) { - this.reply = reply; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public Author getAuthor() { - return author; - } - - public void setAuthor(Author author) { - this.author = author; - } - - @XStreamAlias("body") - public class Body extends Entity { - @XStreamAlias("detail") - private String detail; - @XStreamAlias("title") - private String title; - @XStreamAlias("code") - private String code; - @XStreamAlias("codeType") - private String codeType; - @XStreamAlias("image") - private String image; - @XStreamAlias("imageOrigin") - private String imageOrigin; - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getDetail() { - return detail; - } - - public void setDetail(String detail) { - this.detail = detail; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getCodeType() { - return codeType; - } - - public void setCodeType(String codeType) { - this.codeType = codeType; - } - - public String getImage() { - return image; - } - - public void setImage(String image) { - this.image = image; - } - - public String getImageOrigin() { - return imageOrigin; - } - - public void setImageOrigin(String imageOrigin) { - this.imageOrigin = imageOrigin; - } - } - - @XStreamAlias("author") - public class Author extends Entity { - @XStreamAlias("name") - private String name; - @XStreamAlias("portrait") - private String portrait; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getPortrait() { - return portrait; - } - - public void setPortrait(String portrait) { - this.portrait = portrait; - } - } -} diff --git a/app/src/main/java/net/oschina/app/team/bean/TeamActiveDetail.java b/app/src/main/java/net/oschina/app/team/bean/TeamActiveDetail.java deleted file mode 100644 index 25ce3afe6..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/TeamActiveDetail.java +++ /dev/null @@ -1,27 +0,0 @@ -package net.oschina.app.team.bean; - -import net.oschina.app.bean.Entity; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * Team模块的动态JavaBean - * - * @author kymjs - * - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class TeamActiveDetail extends Entity { - - @XStreamAlias("active") - private TeamActive teamActive; - - public TeamActive getTeamActive() { - return teamActive; - } - - public void setTeamActive(TeamActive teamActive) { - this.teamActive = teamActive; - } -} diff --git a/app/src/main/java/net/oschina/app/team/bean/TeamActives.java b/app/src/main/java/net/oschina/app/team/bean/TeamActives.java deleted file mode 100644 index facd05912..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/TeamActives.java +++ /dev/null @@ -1,41 +0,0 @@ -package net.oschina.app.team.bean; - -import java.util.ArrayList; -import java.util.List; - -import net.oschina.app.bean.Entity; -import net.oschina.app.bean.ListEntity; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -/** - * 动态列表 - * - * @author kymjs - * - */ -@XStreamAlias("oschina") -public class TeamActives extends Entity implements ListEntity { - private static final long serialVersionUID = 1L; - - @XStreamAlias("actives") - ArrayList actives = new ArrayList(); - - public static long getSerialversionuid() { - return serialVersionUID; - } - - @Override - public List getList() { - return actives; - } - - public ArrayList getActives() { - return actives; - } - - public void setActives(ArrayList actives) { - this.actives = actives; - } - -} diff --git a/app/src/main/java/net/oschina/app/team/bean/TeamDiary.java b/app/src/main/java/net/oschina/app/team/bean/TeamDiary.java deleted file mode 100644 index ddcbe79fc..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/TeamDiary.java +++ /dev/null @@ -1,66 +0,0 @@ -package net.oschina.app.team.bean; - -import net.oschina.app.bean.Entity; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -@SuppressWarnings("serial") -@XStreamAlias("diary") -public class TeamDiary extends Entity { - - @XStreamAlias("title") - private String title; - - @XStreamAlias("reply") - private int reply; - - @XStreamAlias("createTime") - private String createTime; - - @XStreamAlias("author") - private Author author; - - @XStreamAlias("detail") - private TeamDiaryDetail teamDiaryDetail; - - public TeamDiaryDetail getTeamDiaryDetail() { - return teamDiaryDetail; - } - - public void setTeamDiaryDetail(TeamDiaryDetail teamDiaryDetail) { - this.teamDiaryDetail = teamDiaryDetail; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public int getReply() { - return reply; - } - - public void setReply(int reply) { - this.reply = reply; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public Author getAuthor() { - return author; - } - - public void setAuthor(Author author) { - this.author = author; - } - -} diff --git a/app/src/main/java/net/oschina/app/team/bean/TeamDiaryDetail.java b/app/src/main/java/net/oschina/app/team/bean/TeamDiaryDetail.java deleted file mode 100644 index be0e00655..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/TeamDiaryDetail.java +++ /dev/null @@ -1,98 +0,0 @@ -package net.oschina.app.team.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamImplicit; - -import net.oschina.app.bean.Entity; - -import java.io.Serializable; -import java.util.List; - -@XStreamAlias("detail") -public class TeamDiaryDetail extends Entity { - @XStreamAlias("sun") - private DayData sun; - @XStreamAlias("thu") - private DayData thu; - @XStreamAlias("wed") - private DayData wed; - @XStreamAlias("tue") - private DayData tue; - @XStreamAlias("mon") - private DayData mon; - @XStreamAlias("fri") - private DayData fri; - @XStreamAlias("sat") - private DayData sat; - - public class DayData implements Serializable { - @XStreamImplicit(itemFieldName = "list") - private List list; - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - - } - - public DayData getSun() { - return sun; - } - - public void setSun(DayData sun) { - this.sun = sun; - } - - public DayData getThu() { - return thu; - } - - public void setThu(DayData thu) { - this.thu = thu; - } - - public DayData getWed() { - return wed; - } - - public void setWed(DayData wed) { - this.wed = wed; - } - - public DayData getTue() { - return tue; - } - - public void setTue(DayData tue) { - this.tue = tue; - } - - public DayData getMon() { - return mon; - } - - public void setMon(DayData mon) { - this.mon = mon; - } - - public DayData getFri() { - return fri; - } - - public void setFri(DayData fri) { - this.fri = fri; - } - - public DayData getSat() { - return sat; - } - - public void setSat(DayData sat) { - this.sat = sat; - } - -} diff --git a/app/src/main/java/net/oschina/app/team/bean/TeamDiaryDetailBean.java b/app/src/main/java/net/oschina/app/team/bean/TeamDiaryDetailBean.java deleted file mode 100644 index fb315309b..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/TeamDiaryDetailBean.java +++ /dev/null @@ -1,21 +0,0 @@ -package net.oschina.app.team.bean; - -import net.oschina.app.bean.Entity; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -@XStreamAlias("oschina") -public class TeamDiaryDetailBean extends Entity { - - @XStreamAlias("diary") - private TeamDiary teamDiary; - - public TeamDiary getTeamDiary() { - return teamDiary; - } - - public void setTeamDiary(TeamDiary teamDiary) { - this.teamDiary = teamDiary; - } - -} diff --git a/app/src/main/java/net/oschina/app/team/bean/TeamDiaryList.java b/app/src/main/java/net/oschina/app/team/bean/TeamDiaryList.java deleted file mode 100644 index ac64584be..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/TeamDiaryList.java +++ /dev/null @@ -1,48 +0,0 @@ -package net.oschina.app.team.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -import net.oschina.app.bean.Entity; -import net.oschina.app.bean.ListEntity; - -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class TeamDiaryList extends Entity implements ListEntity { - - @XStreamAlias("pagesize") - private int pageSize; - - @XStreamAlias("totalCount") - private int totalCount; - - @XStreamAlias("diaries") - private List list = new ArrayList(); - - public int getPageSize() { - return pageSize; - } - - public void setPageSize(int pageSize) { - this.pageSize = pageSize; - } - - public int getTotalCount() { - return totalCount; - } - - public void setTotalCount(int totalCount) { - this.totalCount = totalCount; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - -} diff --git a/app/src/main/java/net/oschina/app/team/bean/TeamDiscuss.java b/app/src/main/java/net/oschina/app/team/bean/TeamDiscuss.java deleted file mode 100644 index 05150baa5..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/TeamDiscuss.java +++ /dev/null @@ -1,87 +0,0 @@ -package net.oschina.app.team.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -import net.oschina.app.bean.Entity; - -@SuppressWarnings("serial") -@XStreamAlias("discuss") -public class TeamDiscuss extends Entity { - - @XStreamAlias("type") - private String type; - - @XStreamAlias("title") - private String title; - - @XStreamAlias("body") - private String body; - - @XStreamAlias("createTime") - private String createTime; - - @XStreamAlias("answerCount") - private int answerCount;// 回复数量 - - @XStreamAlias("voteUp") - private int voteUp;// 点赞数 - - @XStreamAlias("author") - private Author author; - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getBody() { - return body; - } - - public void setBody(String body) { - this.body = body; - } - - public String getCreateTime() { - return createTime; - } - - public void setCreateTime(String createTime) { - this.createTime = createTime; - } - - public int getAnswerCount() { - return answerCount; - } - - public void setAnswerCount(int answerCount) { - this.answerCount = answerCount; - } - - public int getVoteUp() { - return voteUp; - } - - public void setVoteUp(int voteUp) { - this.voteUp = voteUp; - } - - public Author getAuthor() { - return author; - } - - public void setAuthor(Author author) { - this.author = author; - } -} diff --git a/app/src/main/java/net/oschina/app/team/bean/TeamDiscussDetail.java b/app/src/main/java/net/oschina/app/team/bean/TeamDiscussDetail.java deleted file mode 100644 index 6769b0725..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/TeamDiscussDetail.java +++ /dev/null @@ -1,29 +0,0 @@ -package net.oschina.app.team.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -import net.oschina.app.bean.Entity; - -/** - * TeamDisscussDetail.java - * - * @author 火蚁(http://my.oschina.net/u/253900) - * - * @data 2015-2-2 下午5:33:07 - */ -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class TeamDiscussDetail extends Entity { - - @XStreamAlias("discuss") - private TeamDiscuss discuss; - - public TeamDiscuss getDiscuss() { - return discuss; - } - - public void setDiscuss(TeamDiscuss discuss) { - this.discuss = discuss; - } -} - diff --git a/app/src/main/java/net/oschina/app/team/bean/TeamDiscussList.java b/app/src/main/java/net/oschina/app/team/bean/TeamDiscussList.java deleted file mode 100644 index 6af54ded0..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/TeamDiscussList.java +++ /dev/null @@ -1,48 +0,0 @@ -package net.oschina.app.team.bean; - -import java.util.ArrayList; -import java.util.List; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -import net.oschina.app.bean.Entity; -import net.oschina.app.bean.ListEntity; - -@SuppressWarnings("serial") -@XStreamAlias("oschina") -public class TeamDiscussList extends Entity implements ListEntity { - - @XStreamAlias("pagesize") - private int pageSize; - - @XStreamAlias("totalCount") - private int totalCount; - - @XStreamAlias("discusses") - private List list = new ArrayList(); - - public int getPageSize() { - return pageSize; - } - - public void setPageSize(int pageSize) { - this.pageSize = pageSize; - } - - public int getTotalCount() { - return totalCount; - } - - public void setTotalCount(int totalCount) { - this.totalCount = totalCount; - } - - public List getList() { - return list; - } - - public void setList(List list) { - this.list = list; - } - -} diff --git a/app/src/main/java/net/oschina/app/team/bean/TeamGit.java b/app/src/main/java/net/oschina/app/team/bean/TeamGit.java deleted file mode 100644 index 9a16ca469..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/TeamGit.java +++ /dev/null @@ -1,68 +0,0 @@ -package net.oschina.app.team.bean; - -import com.thoughtworks.xstream.annotations.XStreamAlias; - -import net.oschina.app.bean.Entity; - -/** - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2015年1月20日 上午10:49:39 - * - */ - -@SuppressWarnings("serial") -@XStreamAlias("git") -public class TeamGit extends Entity { - - @XStreamAlias("name") - private String name; - - @XStreamAlias("path") - private String path; - - @XStreamAlias("ownerName") - private String ownerName; - - @XStreamAlias("ownerUserName") - private String ownerUserName; - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getPath() { - return path; - } - - public void setPath(String path) { - this.path = path; - } - - public String getOwnerName() { - return ownerName; - } - - public void setOwnerName(String ownerName) { - this.ownerName = ownerName; - } - - public String getOwnerUserName() { - return ownerUserName; - } - - public void setOwnerUserName(String ownerUserName) { - this.ownerUserName = ownerUserName; - } -} diff --git a/app/src/main/java/net/oschina/app/team/bean/TeamIssue.java b/app/src/main/java/net/oschina/app/team/bean/TeamIssue.java deleted file mode 100644 index 6ac084bf4..000000000 --- a/app/src/main/java/net/oschina/app/team/bean/TeamIssue.java +++ /dev/null @@ -1,584 +0,0 @@ -package net.oschina.app.team.bean; - -import java.io.Serializable; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.List; - -import net.oschina.app.R; -import net.oschina.app.bean.Entity; -import net.oschina.app.util.StringUtils; - -import com.thoughtworks.xstream.annotations.XStreamAlias; -import com.thoughtworks.xstream.annotations.XStreamImplicit; - -/** - * 任务实体类 - * - * @author FireAnt(http://my.oschina.net/LittleDY) - * @version 创建时间:2015年1月14日 下午4:26:28 - * - */ - -@SuppressWarnings("serial") -@XStreamAlias("issue") -public class TeamIssue extends Entity { - - public final static String TEAM_ISSUE_STATE_OPENED = "opened"; - public final static String TEAM_ISSUE_STATE_UNDERWAY = "underway"; - public final static String TEAM_ISSUE_STATE_ACCEPTED = "accepted"; - public final static String TEAM_ISSUE_STATE_CLOSED = "closed"; - - public final static String TEAM_ISSUE_SOURCE_GITOSC = "Git@OSC"; - public final static String TEAM_ISSUE_SOURCE_GITHUB = "GitHub"; - public final static String TEAM_ISSUE_SOURCE_TEAMOSC = "Team@OSC"; - - public final static int TEAM_ISSUE_GITPUSHED = 1;// 已同步到git - - @XStreamAlias("state") - private String state; - - @XStreamAlias("stateLevel") - private int stateLevel; - - @XStreamAlias("priority") - private String priority; - - @XStreamAlias("source") - private String source; - - @XStreamAlias("title") - private String title; - - @XStreamAlias("description") - private String description; - - @XStreamAlias("createTime") - private String createTime; - - @XStreamAlias("updateTime") - private String updateTime; - - @XStreamAlias("acceptTime") - private String acceptTime; - - @XStreamAlias("deadlineTime") - private String deadlineTime; - - @XStreamAlias("author") - private Author author; - - @XStreamAlias("toUser") - private ToUser toUser; - - @XStreamAlias("replyCount") - private int replyCount; - - @XStreamAlias("labels") - private List

    X%7Ebrbg;u#hh7BuCQT< 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 diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro deleted file mode 100644 index 41abe698d..000000000 --- a/app/proguard-rules.pro +++ /dev/null @@ -1,17 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /Users/yanghonghe/Downloads/adt-bundle-mac-x86_64-20140702/sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/app/src/androidTest/java/net/oschina/app/ApplicationTest.java b/app/src/androidTest/java/net/oschina/app/ApplicationTest.java deleted file mode 100644 index 5b378ac2d..000000000 --- a/app/src/androidTest/java/net/oschina/app/ApplicationTest.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.oschina.app; - -import android.app.Application; -import android.test.ApplicationTestCase; - -/** - * Testing Fundamentals - */ -public class ApplicationTest extends ApplicationTestCase { - public ApplicationTest() { - super(Application.class); - } -} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml deleted file mode 100644 index 2240c7c8d..000000000 --- a/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/aidl/net/oschina/app/service/INoticeService.aidl b/app/src/main/aidl/net/oschina/app/service/INoticeService.aidl deleted file mode 100644 index fcd7d7b32..000000000 --- a/app/src/main/aidl/net/oschina/app/service/INoticeService.aidl +++ /dev/null @@ -1,8 +0,0 @@ -package net.oschina.app.service; - -interface INoticeService -{ - void scheduleNotice(); - void requestNotice(); - void clearNotice(int uid,int type); -} \ No newline at end of file diff --git a/app/src/main/assets/brush.js b/app/src/main/assets/brush.js deleted file mode 100644 index c1bb004da..000000000 --- a/app/src/main/assets/brush.js +++ /dev/null @@ -1,12 +0,0 @@ -if(!window.SyntaxHighlighter){var SyntaxHighlighter=function(){var a={defaults:{"class-name":"","first-line":1,"pad-line-numbers":true,"highlight":null,"smart-tabs":true,"tab-size":4,"gutter":true,"toolbar":true,"collapse":false,"auto-links":true,"light":false,"wrap-lines":true,"html-script":false},config:{useScriptTags:true,clipboardSwf:null,toolbarItemWidth:16,toolbarItemHeight:16,bloggerMode:false,stripBrs:false,tagName:"pre",strings:{expandSource:"show source",viewSource:"view source",copyToClipboard:"copy to clipboard",copyToClipboardConfirmation:"The code is in your clipboard now",print:"print",help:"?",alert:"SyntaxHighlighter\n\n",noBrush:"Can't find brush for: ",brushNotHtmlScript:"Brush wasn't configured for html-script option: ",aboutDialog:'About SyntaxHighlighter