Skip to content

Instantly share code, notes, and snippets.

@RyPope
RyPope / xml
Created August 13, 2017 06:38
Microsoft Outlook APK Decompilation: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="220" android:versionName="2.2.1" package="com.microsoft.office.outlook" platformBuildVersionCode="25" platformBuildVersionName="7.1.1">
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="24" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
public class GetFeedHandler implements RequestHandler<GetFeedRequest, GetFeedResponse> {
private final AmazonDynamoDB mClient = AmazonDynamoDBClientBuilder
.standard()
.build();
private final DynamoDB dynamoDB = new DynamoDB(mClient);
private Context mContext;
public GetFeedResponse handleRequest(final GetFeedRequest input, final Context context) {
mContext = context;
public class GetFeedHandler implements RequestHandler<GetFeedRequest, GetFeedResponse> {
@Inject DynamoDB mDynamoDB;
@Inject LambdaLogger mLambdaLogger;
public GetFeedResponse handleRequest(final GetFeedRequest input, final Context context) {
Injector.getInjector(context).inject(this);
final List<String> activityIds = getActivitiesForUser(input.getUserId());
return new GetFeedResponse(activityIds);
}
@Module
public class FeedTableModule {
@Provides
@Singleton
@Named(value=TableConstants.FEED_TABLE_NAME)
Table feedTable(final DynamoDB dynamoDB) {
return dynamoDB.getTable(TableConstants.FEED_TABLE_NAME);
}
@Provides
public class GetFeedHandler implements RequestHandler<GetFeedRequest, GetFeedResponse> {
@Inject LambdaLogger mLambdaLogger;
@Inject @Named(TableConstants.FEED_USERID_CREATED_AT_INDEX) Index mSortedFeedIndex;
@Inject @Named(QueryConstants.FEED_SORTED_QUERY) QuerySpec mSortedFeedQuery;
public GetFeedResponse handleRequest(final GetFeedRequest input, final Context context) {
Injector.getInjector(context).inject(this);
final List<String> activityIds = getActivitiesForUser(input.getUserId());
return new GetFeedResponse(activityIds);
@Module
public class DynamoDBModule {
@Provides
@Singleton
DynamoDB dynamoDB(final AmazonDynamoDB amazonDynamoDB) {
return new DynamoDB(amazonDynamoDB);
}
@Provides
@Singleton
@Module
public class LambdaModule {
private final Context mContext;
public LambdaModule(final Context context) {
mContext = context;
}
@Provides
@Singleton
private SimpleLoggingHandler injectSimpleLoggingHandler(SimpleLoggingHandler instance) {
SimpleLoggingHandler_MembersInjector.injectMLogger(
instance, providesLambdaLoggerProvider.get());
return instance;
}
@Singleton
@Component(modules = {
LambdaModule.class
})
public interface ExampleComponent {
void inject(SimpleLoggingHandler simpleLoggingHandler);
}
public class SimpleLoggingHandler implements RequestHandler<String, Boolean> {
@Inject LambdaLogger mLogger;
public Boolean handleRequest(final String request, final Context context) {
Injector.getInjector(context).inject(this);
mLogger.log(String.format("Received Request: %s", request));
return true;
}