blob: b1afb243d4715b9383f315f1de01a644a36d9b92 [file] [log] [blame]
var _ = require('lodash')
module.exports = function ActivitiesCtrl($scope) {
$scope.selectedAction = ''
$scope.selectedCategory = ''
$scope.selectedData = ''
$scope.selectedPackageName = $scope.installation &&
$scope.installation.manifest && $scope.installation.manifest.package ?
$scope.installation.manifest.package : ''
$scope.selectedActivityName = ''
$scope.activityActions = []
$scope.activityCategories = []
$scope.activityData = []
$scope.packageNames = [$scope.selectedPackageName]
$scope.activityNames = []
$scope.$watch('installation.manifest.application', function(newValue) {
if (newValue.activities) {
var activityActions = []
var activityCategories = []
var activityData = []
var activityNames = []
_.forEach(newValue.activities, function(activity) {
if (activity.name) {
activityNames.push(activity.name)
}
_.forEach(activity.intentFilters, function(intentFilter) {
_.forEach(intentFilter.actions, function(action) {
if (action.name) {
activityActions.push(action.name)
}
})
_.forEach(intentFilter.categories, function(category) {
if (category.name) {
activityCategories.push(category.name)
}
})
_.forEach(intentFilter.data, function(data) {
if (data.scheme) {
var uri = data.scheme + '://'
if (data.host) {
uri += data.host
}
if (data.port) {
uri += data.port
}
if (data.path) {
uri += '/' + data.path
} else if (data.pathPrefix) {
uri += '/' + data.pathPrefix
} else if (data.pathPattern) {
uri += '/' + data.pathPattern
}
activityData.push(uri)
}
if (data.mimeType) {
activityData.push(data.mimeType)
}
})
})
})
$scope.activityActions = _.uniq(activityActions)
$scope.activityCategories = _.uniq(activityCategories)
$scope.activityData = _.uniq(activityData)
$scope.activityNames = _.uniq(activityNames)
}
})
$scope.runActivity = function() {
var command = 'am start'
if ($scope.selectedAction) {
command += ' -a ' + $scope.selectedAction
}
if ($scope.selectedCategory) {
command += ' -c ' + $scope.selectedCategory
}
if ($scope.selectedData) {
command += ' -d ' + $scope.selectedData
}
if ($scope.selectedPackageName && $scope.selectedActivityName) {
command += ' -n ' +
$scope.selectedPackageName + '/' + $scope.selectedActivityName
}
return $scope.control.shell(command)
.then(function(result) {
// console.log(result)
})
}
}