io.selendroid.standalone.android.impl.InstalledAndroidApp Maven / Gradle / Ivy
/*
* Copyright 2012-2014 eBay Software Foundation and selendroid committers.
*
* 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 io.selendroid.standalone.android.impl;
import io.selendroid.standalone.android.AndroidApp;
import io.selendroid.standalone.exceptions.AndroidSdkException;
import io.selendroid.standalone.exceptions.ShellCommandException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class InstalledAndroidApp implements AndroidApp {
private String packageName;
private String activityName;
private String version;
public InstalledAndroidApp(String appInfo) {
Pattern infoPattern = Pattern.compile("(.+):(.+)/(.+)");
Matcher patternMatcher = infoPattern.matcher(appInfo);
if (patternMatcher.matches()) {
packageName = patternMatcher.group(1);
version = patternMatcher.group(2);
activityName = patternMatcher.group(3);
} else {
throw new RuntimeException("Format for installed app is: tld.company.app:version/ActivityClass");
}
}
@Override
public String getBasePackage() throws AndroidSdkException {
return packageName;
}
@Override
public String getMainActivity() throws AndroidSdkException {
return (activityName.contains(".")) ? activityName : packageName + "." + activityName;
}
public void setMainActivity(String mainActivity) {
this.activityName = mainActivity;
}
@Override
public String getVersionName() throws AndroidSdkException {
return version;
}
@Override
public void deleteFileFromWithinApk(String file) throws ShellCommandException, AndroidSdkException {
// no-op
}
@Override
public String getAppId() throws AndroidSdkException {
return packageName + ":" + version;
}
@Override
public String getAbsolutePath() {
return null;
}
}