From 79205bd92fcaa5d06a47d5c5da38cab67e1dbd86 Mon Sep 17 00:00:00 2001 From: strawmanbobi Date: Sun, 14 May 2017 16:09:37 +0800 Subject: [PATCH] completed compatibility changes for new server --- Android/.gitignore | 3 +- Android/.idea/compiler.xml | 22 - Android/.idea/copyright/profiles_settings.xml | 3 - Android/.idea/gradle.xml | 19 - Android/.idea/misc.xml | 9 - Android/.idea/modules.xml | 10 - Android/.idea/runConfigurations.xml | 12 - Android/app/build.gradle | 5 +- Android/app/libs/irext-web-api.jar | Bin 749990 -> 749979 bytes .../net/irext/ircontrol/IRApplication.java | 2 +- .../irext/ircontrol/bean/RemoteControl.java | 40 +- .../ui/activity/ControlActivity.java | 33 +- .../ircontrol/ui/adapter/OperatorAdapter.java | 2 +- .../ui/adapter/RemoteControlAdapter.java | 2 +- .../ircontrol/ui/fragment/CityFragment.java | 1 - .../ui/fragment/ControlFragment.java | 61 +- .../ircontrol/ui/fragment/IndexFragment.java | 57 +- .../ui/widget/PullToRefreshListView.java | 5 +- .../projectFilesBackup/.idea/workspace.xml | 3756 ----------------- 19 files changed, 84 insertions(+), 3958 deletions(-) delete mode 100644 Android/.idea/compiler.xml delete mode 100644 Android/.idea/copyright/profiles_settings.xml delete mode 100644 Android/.idea/gradle.xml delete mode 100644 Android/.idea/misc.xml delete mode 100644 Android/.idea/modules.xml delete mode 100644 Android/.idea/runConfigurations.xml delete mode 100644 Android/projectFilesBackup/.idea/workspace.xml diff --git a/Android/.gitignore b/Android/.gitignore index 39fb081..3f4fefd 100644 --- a/Android/.gitignore +++ b/Android/.gitignore @@ -1,8 +1,7 @@ *.iml .gradle /local.properties -/.idea/workspace.xml -/.idea/libraries +.idea/ .DS_Store /build /captures diff --git a/Android/.idea/compiler.xml b/Android/.idea/compiler.xml deleted file mode 100644 index 96cc43e..0000000 --- a/Android/.idea/compiler.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Android/.idea/copyright/profiles_settings.xml b/Android/.idea/copyright/profiles_settings.xml deleted file mode 100644 index e7bedf3..0000000 --- a/Android/.idea/copyright/profiles_settings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Android/.idea/gradle.xml b/Android/.idea/gradle.xml deleted file mode 100644 index 4083ae1..0000000 --- a/Android/.idea/gradle.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Android/.idea/misc.xml b/Android/.idea/misc.xml deleted file mode 100644 index c94b33b..0000000 --- a/Android/.idea/misc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Android/.idea/modules.xml b/Android/.idea/modules.xml deleted file mode 100644 index b15f505..0000000 --- a/Android/.idea/modules.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/Android/.idea/runConfigurations.xml b/Android/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460..0000000 --- a/Android/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/Android/app/build.gradle b/Android/app/build.gradle index 1a5a11f..4aebf94 100644 --- a/Android/app/build.gradle +++ b/Android/app/build.gradle @@ -30,19 +30,16 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } - dexOptions { - incremental true - } productFlavors { } } dependencies { compile files('libs/irext-web-api.jar') - compile project(path: ':decodesdk') compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4' compile 'com.android.support:design:25.3.1' compile 'com.android.support:support-v4:25.3.1' compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT' + compile project(':decodesdk') } diff --git a/Android/app/libs/irext-web-api.jar b/Android/app/libs/irext-web-api.jar index f1a6081402630b3b8caf82dd720e2b6002ec5d4b..a3a4fa96327243b150257002c201c1141df14b8c 100644 GIT binary patch delta 19085 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 delta 18830 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 diff --git a/Android/app/src/main/java/net/irext/ircontrol/IRApplication.java b/Android/app/src/main/java/net/irext/ircontrol/IRApplication.java index c5c72dd..38bd0f3 100644 --- a/Android/app/src/main/java/net/irext/ircontrol/IRApplication.java +++ b/Android/app/src/main/java/net/irext/ircontrol/IRApplication.java @@ -21,7 +21,7 @@ public class IRApplication extends com.activeandroid.app.Application { private static final String TAG = IRApplication.class.getSimpleName(); - private static final String ADDRESS = "http://192.168.1.100:8080"; + private static final String ADDRESS = "http://192.168.137.128:8080"; private static final String APP_NAME = "/irext"; public WebAPIs mWeAPIs = WebAPIs.getInstance(ADDRESS, APP_NAME); diff --git a/Android/app/src/main/java/net/irext/ircontrol/bean/RemoteControl.java b/Android/app/src/main/java/net/irext/ircontrol/bean/RemoteControl.java index a2f6dc8..95ebba6 100644 --- a/Android/app/src/main/java/net/irext/ircontrol/bean/RemoteControl.java +++ b/Android/app/src/main/java/net/irext/ircontrol/bean/RemoteControl.java @@ -22,13 +22,13 @@ import java.util.List; public class RemoteControl extends Model { @Column(name = "CategoryID") - private int categoryID; + private int categoryId; @Column(name = "CategoryName") private String categoryName; @Column(name = "BrandID") - private int brandID; + private int brandId; @Column(name = "BrandName") private String brandName; @@ -40,7 +40,7 @@ public class RemoteControl extends Model { private String cityName; @Column(name = "OperatorID") - private String operatorID; + private String operatorId; @Column(name = "OperatorName") private String operatorName; @@ -57,12 +57,12 @@ public class RemoteControl extends Model { @Column(name = "SubCategory") private int subCategory; - public int getCategoryID() { - return categoryID; + public int getCategoryId() { + return categoryId; } - public void setCategoryID(int categoryID) { - this.categoryID = categoryID; + public void setCategoryId(int categoryId) { + this.categoryId = categoryId; } public String getCategoryName() { @@ -73,12 +73,12 @@ public class RemoteControl extends Model { this.categoryName = categoryName; } - public int getBrandID() { - return brandID; + public int getBrandId() { + return brandId; } - public void setBrandID(int brandID) { - this.brandID = brandID; + public void setBrandId(int brandId) { + this.brandId = brandId; } public String getBrandName() { @@ -105,12 +105,12 @@ public class RemoteControl extends Model { this.cityName = cityName; } - public String getOperatorID() { - return operatorID; + public String getOperatorId() { + return operatorId; } - public void setOperatorID(String operatorID) { - this.operatorID = operatorID; + public void setOperatorId(String operatorId) { + this.operatorId = operatorId; } public String getOperatorName() { @@ -157,16 +157,16 @@ public class RemoteControl extends Model { return super.getId(); } - public RemoteControl(int categoryID, String categoryName, int brandID, String brandName, - String cityCode, String cityName, String operatorID, String operatorName, + public RemoteControl(int categoryId, String categoryName, int brandId, String brandName, + String cityCode, String cityName, String operatorId, String operatorName, String remote, String protocol, String remoteMap, int subCategory) { - this.categoryID = categoryID; + this.categoryId = categoryId; this.categoryName = categoryName; - this.brandID = brandID; + this.brandId = brandId; this.brandName = brandName; this.cityCode = cityCode; this.cityName = cityName; - this.operatorID = operatorID; + this.operatorId = operatorId; this.operatorName = operatorName; this.remote = remote; this.protocol = protocol; diff --git a/Android/app/src/main/java/net/irext/ircontrol/ui/activity/ControlActivity.java b/Android/app/src/main/java/net/irext/ircontrol/ui/activity/ControlActivity.java index c8277b5..47e1db3 100644 --- a/Android/app/src/main/java/net/irext/ircontrol/ui/activity/ControlActivity.java +++ b/Android/app/src/main/java/net/irext/ircontrol/ui/activity/ControlActivity.java @@ -1,18 +1,12 @@ package net.irext.ircontrol.ui.activity; import android.os.Bundle; -import android.os.Handler; -import android.os.Message; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; -import android.util.Log; import android.view.MenuItem; import net.irext.ircontrol.R; import net.irext.ircontrol.ui.fragment.ControlFragment; -import net.irext.ircontrol.utils.MessageUtil; - -import java.lang.ref.WeakReference; /** * Filename: ControlActivity.java @@ -26,12 +20,11 @@ import java.lang.ref.WeakReference; */ public class ControlActivity extends AppCompatActivity { + @SuppressWarnings("unused") private static final String TAG = ControlActivity.class.getSimpleName(); public static final String KEY_REMOTE_ID = "KEY_REMOTE_ID"; - private MsgHandler mMsgHandler; - private ControlFragment mFragment; @Override @@ -39,8 +32,6 @@ public class ControlActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_control); - mMsgHandler = new MsgHandler(this); - FragmentManager fragmentManager = getSupportFragmentManager(); mFragment = new ControlFragment(); @@ -68,26 +59,4 @@ public class ControlActivity extends AppCompatActivity { } super.onStop(); } - - private static class MsgHandler extends Handler { - - WeakReference mControlActivity; - - MsgHandler(ControlActivity activity) { - mControlActivity = new WeakReference<>(activity); - } - - @Override - public void handleMessage(Message msg) { - int cmd = msg.getData().getInt(MessageUtil.KEY_CMD); - Log.d(TAG, "handle message " + Integer.toString(cmd)); - - ControlActivity controlActivity = mControlActivity.get(); - switch (cmd) { - - default: - break; - } - } - } } diff --git a/Android/app/src/main/java/net/irext/ircontrol/ui/adapter/OperatorAdapter.java b/Android/app/src/main/java/net/irext/ircontrol/ui/adapter/OperatorAdapter.java index 8d74fee..e84c77b 100644 --- a/Android/app/src/main/java/net/irext/ircontrol/ui/adapter/OperatorAdapter.java +++ b/Android/app/src/main/java/net/irext/ircontrol/ui/adapter/OperatorAdapter.java @@ -65,7 +65,7 @@ public class OperatorAdapter extends BaseAdapter { } else { holder = (ViewHolder)convertView.getTag(); } - holder.textView.setText(mOperators.get(position).getOperator_name()); + holder.textView.setText(mOperators.get(position).getOperatorName()); return convertView; } diff --git a/Android/app/src/main/java/net/irext/ircontrol/ui/adapter/RemoteControlAdapter.java b/Android/app/src/main/java/net/irext/ircontrol/ui/adapter/RemoteControlAdapter.java index 728ebb6..dd23b40 100644 --- a/Android/app/src/main/java/net/irext/ircontrol/ui/adapter/RemoteControlAdapter.java +++ b/Android/app/src/main/java/net/irext/ircontrol/ui/adapter/RemoteControlAdapter.java @@ -68,7 +68,7 @@ public class RemoteControlAdapter extends BaseAdapter { } RemoteControl remoteControl = mRemoteControls.get(position); String remoteName; - if (Constants.CategoryID.STB.getValue() != remoteControl.getCategoryID()) { + if (Constants.CategoryID.STB.getValue() != remoteControl.getCategoryId()) { remoteName = remoteControl.getCategoryName() + "-" + remoteControl.getBrandName(); } else { remoteName = remoteControl.getCityName() + "-" + remoteControl.getOperatorName(); diff --git a/Android/app/src/main/java/net/irext/ircontrol/ui/fragment/CityFragment.java b/Android/app/src/main/java/net/irext/ircontrol/ui/fragment/CityFragment.java index 97dd54b..69489a4 100644 --- a/Android/app/src/main/java/net/irext/ircontrol/ui/fragment/CityFragment.java +++ b/Android/app/src/main/java/net/irext/ircontrol/ui/fragment/CityFragment.java @@ -16,7 +16,6 @@ import net.irext.ircontrol.ui.activity.CreateActivity; import net.irext.ircontrol.ui.adapter.CityAdapter; import net.irext.ircontrol.ui.adapter.OperatorAdapter; import net.irext.ircontrol.utils.MessageUtil; -import net.irext.webapi.WebAPIs; import net.irext.webapi.model.City; import net.irext.webapi.model.StbOperator; diff --git a/Android/app/src/main/java/net/irext/ircontrol/ui/fragment/ControlFragment.java b/Android/app/src/main/java/net/irext/ircontrol/ui/fragment/ControlFragment.java index a816582..2d44455 100644 --- a/Android/app/src/main/java/net/irext/ircontrol/ui/fragment/ControlFragment.java +++ b/Android/app/src/main/java/net/irext/ircontrol/ui/fragment/ControlFragment.java @@ -23,7 +23,6 @@ import net.irext.ircontrol.ui.activity.ControlActivity; import net.irext.ircontrol.utils.FileUtils; import net.irext.ircontrol.utils.MessageUtil; -import java.io.File; import java.lang.ref.WeakReference; /** @@ -130,42 +129,26 @@ public class ControlFragment extends Fragment implements View.OnClickListener { private void showRemote() { mCurrentRemoteControl = RemoteControl.getRemoteControl(mRemoteID); if (null != mCurrentRemoteControl) { - Log.d(TAG, "current remote control = " + mCurrentRemoteControl.getRemoteMap()); - int category = mCurrentRemoteControl.getCategoryID(); - int ret = 0; + int category = mCurrentRemoteControl.getCategoryId(); String binFileName = FileUtils.BIN_PATH + FileUtils.FILE_NAME_PREFIX + mCurrentRemoteControl.getRemoteMap() + FileUtils.FILE_NAME_EXT; - if (Constants.CategoryID.AIR_CONDITIONER.getValue() == category) { - - /* decode SDK - load AC binary file */ - ret = mIRDecode.openACBinary(binFileName); - } else { - - /* decode SDK - load TV binary file */ - ret = mIRDecode.openTVBinary(binFileName, mCurrentRemoteControl.getSubCategory()); - } - - Log.d(TAG, "open binary result = " + ret); + /* decode SDK - load binary file */ + // int ret = mIRDecode.openBinary(category, mCurrentRemoteControl.getSubCategory(), binFileName); + // Log.d(TAG, "open binary result = " + ret); } } public void closeIRBinary() { - int category = mCurrentRemoteControl.getCategoryID(); - if (Constants.CategoryID.AIR_CONDITIONER.getValue() == category) { - mIRDecode.closeACBinary(); - } else { - mIRDecode.closeTVBinary(); - } + // mIRDecode.closeBinary(); } @Nullable private int[] irControl(int keyCode) { - + int inputKeyCode; + ACStatus acStatus = new ACStatus(); /* decode SDK - decode according to key code */ - if (Constants.CategoryID.AIR_CONDITIONER.getValue() == mCurrentRemoteControl.getCategoryID()) { - int acFunction; - ACStatus acStatus = new ACStatus(); + if (Constants.CategoryID.AIR_CONDITIONER.getValue() == mCurrentRemoteControl.getCategoryId()) { acStatus.setAcPower(Constants.ACPower.POWER_OFF.getValue()); acStatus.setAcMode(Constants.ACMode.MODE_COOL.getValue()); acStatus.setAcTemp(Constants.ACTemperature.TEMP_24.getValue()); @@ -178,40 +161,46 @@ public class ControlFragment extends Fragment implements View.OnClickListener { switch(keyCode) { case KEY_POWER: // power key --> change power - acFunction = Constants.ACFunction.FUNCTION_SWITCH_POWER.getValue(); + inputKeyCode = Constants.ACFunction.FUNCTION_SWITCH_POWER.getValue(); break; case KEY_UP: // up key --> change wind speed - acFunction = Constants.ACFunction.FUNCTION_SWITCH_WIND_SPEED.getValue(); + inputKeyCode = Constants.ACFunction.FUNCTION_SWITCH_WIND_SPEED.getValue(); break; case KEY_DOWN: // down key --> change wind dir - acFunction = Constants.ACFunction.FUNCTION_SWITCH_WIND_DIR.getValue(); + inputKeyCode = Constants.ACFunction.FUNCTION_SWITCH_WIND_DIR.getValue(); break; case KEY_RIGHT: // right key --> change mode - acFunction = Constants.ACFunction.FUNCTION_CHANGE_MODE.getValue(); + inputKeyCode = Constants.ACFunction.FUNCTION_CHANGE_MODE.getValue(); break; case KEY_OK: // center key --> fix wind dir - acFunction = Constants.ACFunction.FUNCTION_SWITCH_SWING.getValue(); + inputKeyCode = Constants.ACFunction.FUNCTION_SWITCH_SWING.getValue(); break; case KEY_PLUS: // plus key --> temp up - acFunction = Constants.ACFunction.FUNCTION_TEMPERATURE_UP.getValue(); + inputKeyCode = Constants.ACFunction.FUNCTION_TEMPERATURE_UP.getValue(); break; case KEY_MINUS: // minus key --> temp down - acFunction = Constants.ACFunction.FUNCTION_TEMPERATURE_DOWN.getValue(); + inputKeyCode = Constants.ACFunction.FUNCTION_TEMPERATURE_DOWN.getValue(); break; default: return null; } - return IRDecode.getInstance().decodeACBinary(acStatus, acFunction); } else { - return IRDecode.getInstance().decodeTVBinary(keyCode); + inputKeyCode = keyCode; } + + /* decode SDK - decode from binary */ + /* translate key code for AC according to the mapping above */ + /* ac status is useless for decoding devices other than AC, it's an optional parameter */ + /* change wind dir is an optional parameter, set to 0 as default */ + // return mIRDecode.decodeBinary(inputKeyCode, acStatus, 0); + return null; } // control @@ -265,7 +254,8 @@ public class ControlFragment extends Fragment implements View.OnClickListener { break; } // send decoded integer array to IR emitter - ConsumerIrManager irEmitter = (ConsumerIrManager) mParent.getSystemService(Context.CONSUMER_IR_SERVICE); + ConsumerIrManager irEmitter = + (ConsumerIrManager) mParent.getSystemService(Context.CONSUMER_IR_SERVICE); if (irEmitter.hasIrEmitter()) { irEmitter.transmit(38000, decoded); } @@ -282,7 +272,6 @@ public class ControlFragment extends Fragment implements View.OnClickListener { @Override public void handleMessage(Message msg) { int cmd = msg.getData().getInt(MessageUtil.KEY_CMD); - Log.d(TAG, "handle message " + Integer.toString(cmd)); ControlFragment controlFragment = mMainFragment.get(); switch (cmd) { diff --git a/Android/app/src/main/java/net/irext/ircontrol/ui/fragment/IndexFragment.java b/Android/app/src/main/java/net/irext/ircontrol/ui/fragment/IndexFragment.java index 3aeb964..9e5c655 100644 --- a/Android/app/src/main/java/net/irext/ircontrol/ui/fragment/IndexFragment.java +++ b/Android/app/src/main/java/net/irext/ircontrol/ui/fragment/IndexFragment.java @@ -67,12 +67,12 @@ public class IndexFragment extends BaseCreateFragment { City city = mParent.getCurrentCity(); StbOperator operator = mParent.getCurrentOperator(); - int brandID = 0; + int brandId = 0; String cityCode = null; - String operatorID = null; + String operatorId = null; if (null != brand) { - brandID = brand.getId(); + brandId = brand.getId(); } if (null != city) { @@ -80,11 +80,11 @@ public class IndexFragment extends BaseCreateFragment { } if (null != operator) { - operatorID = operator.getOperator_id(); + operatorId = operator.getOperatorId(); } - mIndexes = mApp.mWeAPIs.listRemoteIndexes(mParent.getCurrentCategory().getId(), brandID, - cityCode, operatorID); + mIndexes = mApp.mWeAPIs.listRemoteIndexes(mParent.getCurrentCategory().getId(), brandId, + cityCode, operatorId); if (null == mIndexes) { mIndexes = new ArrayList<>(); } @@ -97,22 +97,26 @@ public class IndexFragment extends BaseCreateFragment { new Thread() { @Override public void run() { - String remoteMap = mCurrentIndex.getRemoteMap(); - int indexID = mCurrentIndex.getId(); - InputStream in = mApp.mWeAPIs.downloadBin(remoteMap, indexID); - if (createDirectory()) { - File binFile = new File(FileUtils.BIN_PATH + - FileUtils.FILE_NAME_PREFIX + mCurrentIndex.getRemoteMap() + - FileUtils.FILE_NAME_EXT); - FileUtils.write(binFile, in); - } else { - Log.w(TAG, "no directory to contain bin file"); - } + try { + String remoteMap = mCurrentIndex.getRemoteMap(); + int indexId = mCurrentIndex.getId(); + InputStream in = mApp.mWeAPIs.downloadBin(remoteMap, indexId); + if (createDirectory()) { + File binFile = new File(FileUtils.BIN_PATH + + FileUtils.FILE_NAME_PREFIX + mCurrentIndex.getRemoteMap() + + FileUtils.FILE_NAME_EXT); + FileUtils.write(binFile, in); + } else { + Log.w(TAG, "no directory to contain bin file"); + } - if (null != in) { - MessageUtil.postMessage(mMsgHandler, CMD_SAVE_REMOTE_CONTROL); - } else { - Log.e(TAG, "bin file download failed"); + if (null != in) { + MessageUtil.postMessage(mMsgHandler, CMD_SAVE_REMOTE_CONTROL); + } else { + Log.e(TAG, "bin file download failed"); + } + } catch (Exception e) { + e.printStackTrace(); } } }.start(); @@ -120,18 +124,21 @@ public class IndexFragment extends BaseCreateFragment { private boolean createDirectory() { File file = new File(FileUtils.BIN_PATH); + if (file.exists()) { + return true; + } return file.mkdirs(); } private void saveRemoteControl() { RemoteControl remoteControl = new RemoteControl(); - remoteControl.setCategoryID(mCurrentIndex.getCategoryId()); + remoteControl.setCategoryId(mCurrentIndex.getCategoryId()); remoteControl.setCategoryName(mCurrentIndex.getCategoryName()); - remoteControl.setBrandID(mCurrentIndex.getBrandId()); + remoteControl.setBrandId(mCurrentIndex.getBrandId()); remoteControl.setBrandName(mCurrentIndex.getBrandName()); remoteControl.setCityCode(mCurrentIndex.getCityCode()); remoteControl.setCityName(mCurrentIndex.getCityName()); - remoteControl.setOperatorID(mCurrentIndex.getOperatorId()); + remoteControl.setOperatorId(mCurrentIndex.getOperatorId()); remoteControl.setOperatorName(mCurrentIndex.getOperatorName()); remoteControl.setProtocol(mCurrentIndex.getProtocol()); remoteControl.setRemote(mCurrentIndex.getRemote()); @@ -139,7 +146,6 @@ public class IndexFragment extends BaseCreateFragment { remoteControl.setSubCategory(mCurrentIndex.getSubCate()); long id = RemoteControl.createRemoteControl(remoteControl); - Log.d(TAG, "remote control has been saved: " + id); mParent.finish(); } @@ -197,7 +203,6 @@ public class IndexFragment extends BaseCreateFragment { @Override public void handleMessage(Message msg) { int cmd = msg.getData().getInt(MessageUtil.KEY_CMD); - Log.d(TAG, "handle message " + Integer.toString(cmd)); IndexFragment indexFragment = mIndexFragment.get(); switch (cmd) { diff --git a/Android/app/src/main/java/net/irext/ircontrol/ui/widget/PullToRefreshListView.java b/Android/app/src/main/java/net/irext/ircontrol/ui/widget/PullToRefreshListView.java index 2132985..bb80dce 100644 --- a/Android/app/src/main/java/net/irext/ircontrol/ui/widget/PullToRefreshListView.java +++ b/Android/app/src/main/java/net/irext/ircontrol/ui/widget/PullToRefreshListView.java @@ -284,10 +284,10 @@ public class PullToRefreshListView extends ListView{ else { previousY = -1; } - + // Remember where have we started mScrollStartY = event.getY(); - + break; case MotionEvent.ACTION_UP: @@ -296,7 +296,6 @@ public class PullToRefreshListView extends ListView{ case RELEASE_TO_REFRESH: setState(State.REFRESHING); bounceBackHeader(); - break; case PULL_TO_REFRESH: diff --git a/Android/projectFilesBackup/.idea/workspace.xml b/Android/projectFilesBackup/.idea/workspace.xml deleted file mode 100644 index 603f88c..0000000 --- a/Android/projectFilesBackup/.idea/workspace.xml +++ /dev/null @@ -1,3756 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - DEFINITION_ORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1493039004025 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file